Skip to content

#15006 breaks make check on my linux system in run-make/c-dynamic-dylib  #15103

Closed
@ben0x539

Description

@ben0x539

#15006 seems to break make check for me. I'm not sure why it's ok for the buildbots but not my 64bit linux system but now run-make/c-dynamic-dylib consistently fails for me trying to run the bar.rs binary, with $(TMPDIR) not being included in LD_LIBRARY_PATH at all.

I'm pretty clueless about Makefiles and our particular setup so I'm not actually sure where that is supposed to happen. The bar.rs binary has a RUNPATH that includes $ORIGIN/., but the foo.rs dynamic library doesn't, so if I understand correctly, this is going to need an LD_LIBRARY_PATH of some sort to work.

I'm using Gentoo Linux like the author of #11742 which apparently addressed a similar problem, so that's probably related.

The build output for complenetess:


maketest: c-dynamic-dylib
----- [...]/rust/src/test/run-make/c-dynamic-dylib/ --------------------
------ stdout ---------------------------------------------
make[1]: Entering directory '[...]/rust/src/test/run-make/c-dynamic-dylib'
gcc -Wall -Werror -g -fPIC -m64 -L [...]/rust/build/x86_64-unknown-linux-gnu/test/run-make/c-dynamic-dylib -c -o [...]/rust/build/x86_64-unknown-linux-gnu/test/run-make/c-dynamic-dylib/libcfoo.o cfoo.c
gcc -Wall -Werror -g -fPIC -m64 -L [...]/rust/build/x86_64-unknown-linux-gnu/test/run-make/c-dynamic-dylib -o [...]/rust/build/x86_64-unknown-linux-gnu/test/run-make/c-dynamic-dylib/libcfoo.so [...]/rust/build/x86_64-unknown-linux-gnu/test/run-make/c-dynamic-dylib/libcfoo.o -shared
LD_LIBRARY_PATH="[...]/rust/build/x86_64-unknown-linux-gnu/stage2/lib:" [...]/rust/build/x86_64-unknown-linux-gnu/stage2/bin/rustc --out-dir [...]/rust/build/x86_64-unknown-linux-gnu/test/run-make/c-dynamic-dylib -L [...]/rust/build/x86_64-unknown-linux-gnu/test/run-make/c-dynamic-dylib foo.rs
LD_LIBRARY_PATH="[...]/rust/build/x86_64-unknown-linux-gnu/stage2/lib:" [...]/rust/build/x86_64-unknown-linux-gnu/stage2/bin/rustc --out-dir [...]/rust/build/x86_64-unknown-linux-gnu/test/run-make/c-dynamic-dylib -L [...]/rust/build/x86_64-unknown-linux-gnu/test/run-make/c-dynamic-dylib bar.rs
LD_LIBRARY_PATH="[...]/rust/build/x86_64-unknown-linux-gnu/stage1/lib/rustlib/x86_64-unknown-linux-gnu/lib:" [...]/rust/build/x86_64-unknown-linux-gnu/test/run-make/c-dynamic-dylib/bar
Makefile:9: recipe for target 'all' failed
rm [...]/rust/build/x86_64-unknown-linux-gnu/test/run-make/c-dynamic-dylib/libcfoo.o
make[1]: Leaving directory '[...]/rust/src/test/run-make/c-dynamic-dylib'

------ stderr ---------------------------------------------
[...]/rust/build/x86_64-unknown-linux-gnu/test/run-make/c-dynamic-dylib/bar: error while loading shared libraries: libcfoo.so: cannot open shared object file: No such file or directory
make[1]: *** [all] Error 127

[...]/rust/mk/tests.mk:990: recipe for target 'x86_64-unknown-linux-gnu/test/run-make/c-dynamic-dylib-2-T-x86_64-unknown-linux-gnu-H-x86_64-unknown-linux-gnu.ok' failed
make: *** [x86_64-unknown-linux-gnu/test/run-make/c-dynamic-dylib-2-T-x86_64-unknown-linux-gnu-H-x86_64-unknown-linux-gnu.ok] Error 2

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions