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)

defect

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)
(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...
Assignee: nobody → mshal
Blocks: buildtup
Flags: needinfo?(mshal)
Priority: -- → P3
I have a workaround for now, and Chris is working on a better fix in bug 1492291.
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 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
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla64
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: