Closed
Bug 1491169
Opened 6 years ago
Closed 6 years ago
undefined LMDB symbol errors when using tup build backend
Categories
(Toolkit :: General, defect, P3)
Toolkit
General
Tracking
()
RESOLVED
FIXED
mozilla64
Tracking | Status | |
---|---|---|
firefox64 | --- | fixed |
People
(Reporter: myk, Assigned: mshal)
References
Details
Attachments
(2 files)
When building Firefox with the tup backend, if you use rkv (currently vendored into mozilla-central but not yet used by Firefox), such as with the attached patch, then the build fails because the linker doesn't find these LMDB symbols:
> * ~99% 103) obj-x86_64-pc-linux-gnu/toolkit/library: LINK libxul.so
> /usr/bin/ld.lld: error: undefined symbol: mdb_cursor_close
> >>> referenced by cursor.rs:127 (third_party/rust/lmdb-rkv/src/cursor.rs:127)
> >>> lmdb-41e8387c93255a1b.lmdb.e9qyf1hw-cgu.0.rcgu.o:(_$LT$lmdb..cursor..RoCursor$LT$$u27$txn$GT$$u20$as$u20$core..ops..drop..Drop$GT$::drop::h8b70bda5410a00d1) in archive x86_64-unknown-linux-gnu/release/libgkrust.a
> /usr/bin/ld.lld: error: undefined symbol: mdb_cursor_close
> >>> referenced by cursor.rs:165 (third_party/rust/lmdb-rkv/src/cursor.rs:165)
> >>> lmdb-41e8387c93255a1b.lmdb.e9qyf1hw-cgu.0.rcgu.o:(_$LT$lmdb..cursor..RwCursor$LT$$u27$txn$GT$$u20$as$u20$core..ops..drop..Drop$GT$::drop::h9b4628d7d0602001) in archive x86_64-unknown-linux-gnu/release/libgkrust.a
> /usr/bin/ld.lld: error: undefined symbol: mdb_cursor_open
> >>> referenced by cursor.rs:175 (third_party/rust/lmdb-rkv/src/cursor.rs:175)
> >>> lmdb-41e8387c93255a1b.lmdb.e9qyf1hw-cgu.0.rcgu.o:(lmdb::cursor::RwCursor::new::h72e663633092488c) in archive x86_64-unknown-linux-gnu/release/libgkrust.a
> /usr/bin/ld.lld: error: undefined symbol: mdb_cursor_del
> >>> referenced by cursor.rs:204 (third_party/rust/lmdb-rkv/src/cursor.rs:204)
> >>> lmdb-41e8387c93255a1b.lmdb.e9qyf1hw-cgu.0.rcgu.o:(lmdb::cursor::RwCursor::del::hce0d6f743eb3ff10) in archive x86_64-unknown-linux-gnu/release/libgkrust.a
> /usr/bin/ld.lld: error: undefined symbol: mdb_cursor_get
> >>> referenced by cursor.rs:254 (third_party/rust/lmdb-rkv/src/cursor.rs:254)
> >>> lmdb-41e8387c93255a1b.lmdb.e9qyf1hw-cgu.0.rcgu.o:(_$LT$lmdb..cursor..Iter$LT$$u27$txn$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$::next::hf6710c65f4645dd2) in archive x86_64-unknown-linux-gnu/release/libgkrust.a
> /usr/bin/ld.lld: error: undefined symbol: mdb_cursor_get
> >>> referenced by cursor.rs:303 (third_party/rust/lmdb-rkv/src/cursor.rs:303)
> >>> lmdb-41e8387c93255a1b.lmdb.e9qyf1hw-cgu.0.rcgu.o:(_$LT$lmdb..cursor..IterDup$LT$$u27$txn$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$::next::h62a5ff1bbcded3d3) in archive x86_64-unknown-linux-gnu/release/libgkrust.a
> /usr/bin/ld.lld: error: undefined symbol: mdb_dbi_open
> >>> referenced by database.rs:30 (third_party/rust/lmdb-rkv/src/database.rs:30)
> >>> lmdb-41e8387c93255a1b.lmdb.e9qyf1hw-cgu.0.rcgu.o:(lmdb::database::Database::new::h1699380e4b4497d8) in archive x86_64-unknown-linux-gnu/release/libgkrust.a
> /usr/bin/ld.lld: error: undefined symbol: mdb_dbi_flags
> >>> referenced by environment.rs:114 (third_party/rust/lmdb-rkv/src/environment.rs:114)
> >>> lmdb-41e8387c93255a1b.lmdb.e9qyf1hw-cgu.0.rcgu.o:(lmdb::environment::Environment::get_db_flags::h4896cd613f0981b1) in archive x86_64-unknown-linux-gnu/release/libgkrust.a
> /usr/bin/ld.lld: error: undefined symbol: mdb_env_sync
> >>> referenced by environment.rs:137 (third_party/rust/lmdb-rkv/src/environment.rs:137)
> >>> lmdb-41e8387c93255a1b.lmdb.e9qyf1hw-cgu.0.rcgu.o:(lmdb::environment::Environment::sync::h0ff7099d74828988) in archive x86_64-unknown-linux-gnu/release/libgkrust.a
> /usr/bin/ld.lld: error: undefined symbol: mdb_dbi_close
> >>> referenced by environment.rs:155 (third_party/rust/lmdb-rkv/src/environment.rs:155)
> >>> lmdb-41e8387c93255a1b.lmdb.e9qyf1hw-cgu.0.rcgu.o:(lmdb::environment::Environment::close_db::h9a76217b31dc99de) in archive x86_64-unknown-linux-gnu/release/libgkrust.a
> /usr/bin/ld.lld: error: undefined symbol: mdb_env_stat
> >>> referenced by environment.rs:162 (third_party/rust/lmdb-rkv/src/environment.rs:162)
> >>> lmdb-41e8387c93255a1b.lmdb.e9qyf1hw-cgu.0.rcgu.o:(lmdb::environment::Environment::stat::h9db1015d9f55f071) in archive x86_64-unknown-linux-gnu/release/libgkrust.a
> /usr/bin/ld.lld: error: undefined symbol: mdb_env_close
> >>> referenced by environment.rs:222 (third_party/rust/lmdb-rkv/src/environment.rs:222)
> >>> lmdb-41e8387c93255a1b.lmdb.e9qyf1hw-cgu.0.rcgu.o:(_$LT$lmdb..environment..Environment$u20$as$u20$core..ops..drop..Drop$GT$::drop::h0b2c82574d8ba9fd) in archive x86_64-unknown-linux-gnu/release/libgkrust.a
> /usr/bin/ld.lld: error: undefined symbol: mdb_env_create
> >>> referenced by environment.rs:258 (third_party/rust/lmdb-rkv/src/environment.rs:258)
> >>> lmdb-41e8387c93255a1b.lmdb.e9qyf1hw-cgu.0.rcgu.o:(lmdb::environment::EnvironmentBuilder::open_with_permissions::h8dad592cd886c37b) in archive x86_64-unknown-linux-gnu/release/libgkrust.a
> /usr/bin/ld.lld: error: undefined symbol: mdb_env_set_maxreaders
> >>> referenced by environment.rs:260 (third_party/rust/lmdb-rkv/src/environment.rs:260)
> >>> lmdb-41e8387c93255a1b.lmdb.e9qyf1hw-cgu.0.rcgu.o:(lmdb::environment::EnvironmentBuilder::open_with_permissions::h8dad592cd886c37b) in archive x86_64-unknown-linux-gnu/release/libgkrust.a
> /usr/bin/ld.lld: error: undefined symbol: mdb_env_set_maxdbs
> >>> referenced by environment.rs:264 (third_party/rust/lmdb-rkv/src/environment.rs:264)
> >>> lmdb-41e8387c93255a1b.lmdb.e9qyf1hw-cgu.0.rcgu.o:(lmdb::environment::EnvironmentBuilder::open_with_permissions::h8dad592cd886c37b) in archive x86_64-unknown-linux-gnu/release/libgkrust.a
> /usr/bin/ld.lld: error: undefined symbol: mdb_env_set_mapsize
> >>> referenced by environment.rs:268 (third_party/rust/lmdb-rkv/src/environment.rs:268)
> >>> lmdb-41e8387c93255a1b.lmdb.e9qyf1hw-cgu.0.rcgu.o:(lmdb::environment::EnvironmentBuilder::open_with_permissions::h8dad592cd886c37b) in archive x86_64-unknown-linux-gnu/release/libgkrust.a
> /usr/bin/ld.lld: error: undefined symbol: mdb_env_close
> >>> referenced by lmdb.e9qyf1hw-cgu.0
> >>> lmdb-41e8387c93255a1b.lmdb.e9qyf1hw-cgu.0.rcgu.o:(lmdb::environment::EnvironmentBuilder::open_with_permissions::h8dad592cd886c37b) in archive x86_64-unknown-linux-gnu/release/libgkrust.a
> /usr/bin/ld.lld: error: undefined symbol: mdb_env_open
> >>> referenced by environment.rs:275 (third_party/rust/lmdb-rkv/src/environment.rs:275)
> >>> lmdb-41e8387c93255a1b.lmdb.e9qyf1hw-cgu.0.rcgu.o:(lmdb::environment::EnvironmentBuilder::open_with_permissions::h8dad592cd886c37b) in archive x86_64-unknown-linux-gnu/release/libgkrust.a
> /usr/bin/ld.lld: error: undefined symbol: mdb_env_close
> >>> referenced by environment.rs:276 (third_party/rust/lmdb-rkv/src/environment.rs:276)
> >>> lmdb-41e8387c93255a1b.lmdb.e9qyf1hw-cgu.0.rcgu.o:(lmdb::environment::EnvironmentBuilder::open_with_permissions::h8dad592cd886c37b) in archive x86_64-unknown-linux-gnu/release/libgkrust.a
> /usr/bin/ld.lld: error: undefined symbol: mdb_strerror
> >>> referenced by error.rs:123 (third_party/rust/lmdb-rkv/src/error.rs:123)
> >>> lmdb-41e8387c93255a1b.lmdb.e9qyf1hw-cgu.0.rcgu.o:(_$LT$lmdb..error..Error$u20$as$u20$std..error..Error$GT$::description::h72ad733979676f0e) in archive x86_64-unknown-linux-gnu/release/libgkrust.a
> /usr/bin/ld.lld: error: too many errors emitted, stopping now (use -error-limit=0 to see all errors)
Building with the regular backend works fine, so this might be a tup issue.
mshal: should this be marked as blocking meta-bug 827343?
Flags: needinfo?(mshal)
Assignee | ||
Comment 1•6 years ago
|
||
(In reply to Myk Melez [:myk] [@mykmelez] from comment #0)
> Building with the regular backend works fine, so this might be a tup issue.
>
> mshal: should this be marked as blocking meta-bug 827343?
Sorry for the delay - I was out on PTO. Yeah, it's reasonable to block the tup bug for issues like this (I've added it). I'll take a look...
Updated•6 years ago
|
Priority: -- → P3
Assignee | ||
Comment 2•6 years ago
|
||
I have a workaround for now, and Chris is working on a better fix in bug 1492291.
Assignee | ||
Comment 3•6 years ago
|
||
This is a quick fix to workaround linking in rkv and lmdb-sys in the tup
backend. Bug 1492291 is a followup to actually fix the problem more
generally.
MozReview-Commit-ID: 523it7WEUad
Comment 4•6 years ago
|
||
Comment on attachment 9010355 [details]
Bug 1491169 - Fix LMDB symbol errors in the tup backend; r?chmanchester
Chris Manchester (:chmanchester) has approved the revision.
Attachment #9010355 -
Flags: review+
Pushed by mshal@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/79cdaf8a3c6d
Fix LMDB symbol errors in the tup backend; r=chmanchester
Comment 6•6 years ago
|
||
bugherder |
Status: NEW → RESOLVED
Closed: 6 years ago
status-firefox64:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla64
You need to log in
before you can comment on or make changes to this bug.
Description
•