https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113499

            Bug ID: 113499
           Summary: crab1 fails to link when configuring with
                    --disable-plugin
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: rust
          Assignee: unassigned at gcc dot gnu.org
          Reporter: rguenth at gcc dot gnu.org
                CC: dkm at gcc dot gnu.org, gcc-rust at gcc dot gnu.org
  Target Milestone: ---

With --disable-plugin we probably elide -ldl but crab1 calls dlopen even when
plugin support is disabled leading to

[  949s]
/home/abuild/rpmbuild/BUILD/gcc-14.0.1+git8231/obj-x86_64-suse-linux/./prev-gcc/xg++
-B/home/abuild/rpmbuild/BUILD/gcc-14.0.1+git8231/obj-x86_64-suse-linux/./prev-gcc/
-B/usr/x
86_64-suse-linux/bin/ -nostdinc++
-B/home/abuild/rpmbuild/BUILD/gcc-14.0.1+git8231/obj-x86_64-suse-linux/prev-x86_64-suse-linux/libstdc++-v3/src/.libs
-B/home/abuild/rpmbuild/BUILD/gcc-
14.0.1+git8231/obj-x86_64-suse-linux/prev-x86_64-suse-linux/libstdc++-v3/libsupc++/.libs

-I/home/abuild/rpmbuild/BUILD/gcc-14.0.1+git8231/obj-x86_64-suse-linux/prev-x86_64-suse-linux/l
ibstdc++-v3/include/x86_64-suse-linux 
-I/home/abuild/rpmbuild/BUILD/gcc-14.0.1+git8231/obj-x86_64-suse-linux/prev-x86_64-suse-linux/libstdc++-v3/include
 -I/home/abuild/rpmbuild/BUILD/
gcc-14.0.1+git8231/libstdc++-v3/libsupc++
-L/home/abuild/rpmbuild/BUILD/gcc-14.0.1+git8231/obj-x86_64-suse-linux/prev-x86_64-suse-linux/libstdc++-v3/src/.libs
-L/home/abuild/rpmbuild/BU
ILD/gcc-14.0.1+git8231/obj-x86_64-suse-linux/prev-x86_64-suse-linux/libstdc++-v3/libsupc++/.libs
-no-pie   -fmessage-length=0 -grecord-gcc-switches -O2 -Wall
-D_FORTIFY_SOURCE=2 -fstack
-protector-strong -funwind-tables -fasynchronous-unwind-tables
-fstack-clash-protection -g -fno-checking -gtoggle -fprofile-generate -DIN_GCC 
  -fno-exceptions -fno-rtti -fasynchronous
-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual
-Wmissing-format-attribute -Wconditionally-supported -Woverloaded-virtual
-pedantic -Wno-long-long -Wno-variadic-macro
s -Wno-overlength-strings   -DHAVE_CONFIG_H -no-pie -static-libstdc++
-static-libgcc  -L./../libgrust/libproc_macro_internal -o crab1 \
[  949s]       rust/rust-lang.o rust/rust-object-export.o rust/rust-linemap.o
rust/rust-diagnostics.o rust/rust-gcc.o rust/rust-token.o rust/rust-lex.o
rust/rust-cfg-parser.o rust/rust-
parse.o rust/rust-ast.o rust/rust-ast-formatting.o rust/rust-path.o
rust/rust-pattern.o rust/rust-ast-fragment.o rust/rust-ast-dump.o
rust/rust-ast-collector.o rust/rust-ast-visitor.o r
ust/rust-hir-dump.o rust/rust-session-manager.o rust/rust-compile.o
rust/rust-mangle.o rust/rust-compile-resolve-path.o rust/rust-macro-expand.o
rust/rust-cfg-strip.o rust/rust-expand-v
isitor.o rust/rust-ast-builder.o rust/rust-derive.o rust/rust-derive-clone.o
rust/rust-derive-copy.o rust/rust-proc-macro.o rust/rust-macro-invoc-lexer.o
rust/rust-proc-macro-invoc-lexe
r.o rust/rust-macro-substitute-ctx.o rust/rust-macro-builtins.o rust/rust-hir.o
rust/rust-hir-map.o rust/rust-attributes.o rust/rust-keyword-values.o
rust/rust-abi.o rust/rust-token-con
verter.o rust/rust-macro.o rust/rust-ast-lower.o rust/rust-ast-lower-base.o
rust/rust-ast-lower-pattern.o rust/rust-ast-lower-item.o
rust/rust-ast-lower-expr.o rust/rust-ast-lower-type.
o rust/rust-ast-lower-stmt.o rust/rust-rib.o
rust/rust-name-resolution-context.o rust/rust-default-resolver.o
rust/rust-toplevel-name-resolver-2.0.o rust/rust-early-name-resolver-2.0.o 
rust/rust-early-name-resolver.o rust/rust-name-resolver.o
rust/rust-ast-resolve.o rust/rust-ast-resolve-base.o
rust/rust-ast-resolve-item.o rust/rust-ast-resolve-pattern.o rust/rust-ast
-resolve-expr.o rust/rust-ast-resolve-type.o rust/rust-ast-resolve-path.o
rust/rust-ast-resolve-stmt.o rust/rust-ast-resolve-struct-expr-field.o
rust/rust-hir-type-check.o rust/rust-pri
vacy-check.o rust/rust-privacy-ctx.o rust/rust-reachability.o
rust/rust-visibility-resolver.o rust/rust-pub-restricted-visitor.o
rust/rust-privacy-reporter.o rust/rust-tyty.o rust/rust-
tyty-util.o rust/rust-tyty-call.o rust/rust-tyty-subst.o
rust/rust-typecheck-context.o rust/rust-tyty-bounds.o
rust/rust-hir-trait-resolve.o rust/rust-hir-trait-reference.o rust/rust-hi
r-type-check-item.o rust/rust-hir-type-check-type.o
rust/rust-hir-type-check-struct.o rust/rust-hir-type-check-pattern.o
rust/rust-hir-type-check-expr.o rust/rust-hir-type-check-stmt.o 
rust/rust-hir-type-check-enumitem.o rust/rust-hir-type-check-implitem.o
rust/rust-borrow-checker.o rust/rust-bir-builder-expr-stmt.o
rust/rust-bir-dump.o rust/rust-hir-dot-operator.o ru
st/rust-hir-path-probe.o rust/rust-type-util.o rust/rust-coercion.o
rust/rust-casts.o rust/rust-unify.o rust/rust-hir-type-check-base.o
rust/rust-autoderef.o rust/rust-substitution-mapp
er.o rust/rust-const-checker.o rust/rust-lint-marklive.o
rust/rust-lint-unused-var.o rust/rust-readonly-check.o
rust/rust-hir-type-check-path.o rust/rust-unsafe-checker.o rust/rust-comp
ile-intrinsic.o rust/rust-compile-pattern.o rust/rust-compile-fnparam.o
rust/rust-compile-proc-macro.o rust/rust-base62.o rust/rust-compile-item.o
rust/rust-compile-implitem.o rust/rust
-compile-stmt.o rust/rust-compile-expr.o rust/rust-compile-type.o
rust/rust-compile-block.o rust/rust-compile-struct-field-expr.o
rust/rust-constexpr.o rust/rust-compile-base.o rust/rus
t-tree.o rust/rust-compile-context.o rust/rust-export-metadata.o
rust/rust-imports.o rust/rust-import-archive.o rust/rust-extern-crate.o
rust/rust-builtins.o rust/rust-feature.o rust/ru
st-feature-gate.o rust/rust-ast-validation.o rust/rust-dir-owner.o
rust/rust-unicode.o rust/rust-punycode.o  i386-rust.o linux-rust.o attribs.o
libbackend.a main.o libcommon-target.a li
bcommon.a ../libcpp/libcpp.a ../libdecnumber/libdecnumber.a libcommon.a
../libcpp/libcpp.a   ../libbacktrace/.libs/libbacktrace.a
../libiberty/libiberty.a ../libdecnumber/libdecnumber.a
  ../libgrust/libproc_macro_internal/libproc_macro_internal.a -lisl -lmpc
-lmpfr -lgmp   -lz 
[  950s] /usr/x86_64-suse-linux/bin/ld: rust/rust-proc-macro.o: in function
`Rust::load_macros_array(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> >)':
[  950s] rust-proc-macro.cc:(.text+0xf5f): undefined reference to `dlopen'
[  950s] /usr/x86_64-suse-linux/bin/ld: rust-proc-macro.cc:(.text+0x11b1):
undefined reference to `dlsym'
[  950s] /usr/x86_64-suse-linux/bin/ld: rust-proc-macro.cc:(.text+0x13eb):
undefined reference to `dlerror'
[  950s] /usr/x86_64-suse-linux/bin/ld: rust/rust-proc-macro.o: in function
`bool Rust::register_callback<ProcMacro::BridgeState,
ProcMacro::BridgeState>(void*, ProcMacro::BridgeState, 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>
>, ProcMacro::BridgeState)':
[  950s]
rust-proc-macro.cc:(.text._ZN4Rust17register_callbackIN9ProcMacro11BridgeStateES2_EEbPvT_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET0_[_ZN4Rust17register_callbackIN9P
rocMacro11BridgeStateES2_EEbPvT_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET0_]+0x34):
undefined reference to `dlsym'
[  950s] /usr/x86_64-suse-linux/bin/ld: rust/rust-proc-macro.o: in function
`bool Rust::register_callback<ProcMacro::Literal
(*)(std::__cxx11::basic_string<char, std::char_traits<char>,
 std::allocator<char> > const&, bool&), ProcMacro::Literal
(*)(std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&, bool&)>(void*, ProcMacro::Literal 
(*)(std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&, bool&), std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> >, Proc
Macro::Literal (*)(std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&, bool&))':
[  950s]
rust-proc-macro.cc:(.text._ZN4Rust17register_callbackIPFN9ProcMacro7LiteralERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERbESD_EEbPvT_S8_T0_[_ZN4Rust17register_callbackIPFN9ProcMacro7LiteralERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERbESD_EEbPvT_S8_T0_]+0x34):
undefined reference to `dlsym'
[  950s] /usr/x86_64-suse-linux/bin/ld: rust/rust-proc-macro.o: in function
`bool Rust::register_callback<ProcMacro::TokenStream
(*)(std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> >&, bool&), ProcMacro::TokenStream
(*)(std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> >&, bool&)>(void*, ProcMacro::TokenStream
(*)(std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> >&, bool&), std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> >, ProcMacro::TokenStream
(*)(std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> >&, bool&))':
[  950s]
rust-proc-macro.cc:(.text._ZN4Rust17register_callbackIPFN9ProcMacro11TokenStreamERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERbESC_EEbPvT_S8_T0_[_ZN4Rust17register_callbackIPFN9ProcMacro11TokenStreamERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERbESC_EEbPvT_S8_T0_]+0x34):
undefined reference to `dlsym'
[  951s] collect2: error: ld returned 1 exit status
[  951s] make[3]: *** [../../gcc/rust/Make-lang.in:212: crab1] Error 1

Reply via email to