NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: toolchain/55594: Error creating shared library using gcc-7.5.0 on NetBSD 9.0_STABLE



 On Thursday, 20 August 2020, 16:40:03 GMT+5:30, Joerg Sonnenberger <joerg%bec.de@localhost> wrote:

> Why are you using -pie for a shared library?

That's a default (and has been removed), and not relevant here, I think.
There seems to be a difference between passing ``-Wl,-shared'' and passing ``-shared'':
With ``-shared'', the library is produced without error:

---OUTPUT STARTS---
$ gcc -v -Wall -O2 -fstack-protector-all -fstack-protector-strong -march=native -pipe -shared -o ../lib/libtinfow.so ../obj_s/access.o  ../obj_s/add_tries.o  ../obj_s/alloc_ttype.o  ../obj_s/codes.o  ../obj_s/comp_captab.o  ../obj_s/comp_error.o  ../obj_s/comp_hash.o  ../obj_s/comp_userdefs.o  ../obj_s/db_iterator.o  ../obj_s/doalloc.o  ../obj_s/entries.o  ../obj_s/fallback.o  ../obj_s/free_ttype.o  ../obj_s/getenv_num.o  ../obj_s/home_terminfo.o  ../obj_s/init_keytry.o  ../obj_s/lib_acs.o  ../obj_s/lib_baudrate.o  ../obj_s/lib_cur_term.o  ../obj_s/lib_data.o  ../obj_s/lib_has_cap.o  ../obj_s/lib_kernel.o  ../obj_s/lib_keyname.o  ../obj_s/lib_longname.o  ../obj_s/lib_napms.o  ../obj_s/lib_options.o  ../obj_s/lib_raw.o  ../obj_s/lib_setup.o  ../obj_s/lib_termcap.o  ../obj_s/lib_termname.o  ../obj_s/lib_tgoto.o  ../obj_s/lib_ti.o  ../obj_s/lib_tparm.o  ../obj_s/lib_tputs.o  ../obj_s/lib_trace.o  ../obj_s/lib_ttyflags.o  ../obj_s/lib_twait.o  ../obj_s/name_match.o  ../obj_s/names.o  ../obj_s/obsolete.o  ../obj_s/read_entry.o  ../obj_s/read_termcap.o  ../obj_s/strings.o  ../obj_s/tries.o  ../obj_s/trim_sgr0.o  ../obj_s/unctrl.o  ../obj_s/visbuf.o  ../obj_s/alloc_entry.o  ../obj_s/captoinfo.o  ../obj_s/comp_expand.o  ../obj_s/comp_parse.o  ../obj_s/comp_scan.o  ../obj_s/parse_entry.o  ../obj_s/write_entry.o  ../obj_s/define_key.o  ../obj_s/hashed_db.o  ../obj_s/key_defined.o  ../obj_s/keybound.o  ../obj_s/keyok.o  ../obj_s/version.o -L../lib 2>&1 | tee ~/work/log-ok.txt
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/lto-wrapper
Target: x86_64--netbsd
Configured with: /usr/src/tools/gcc/../../external/gpl3/gcc/dist/configure --target=x86_64--netbsd --enable-long-long --enable-threads --with-bugurl=http://www.NetBSD.org/Misc/send-pr.html --with-pkgversion='NetBSD nb4 20200810' --with-system-zlib --without-isl --enable-__cxa_atexit --enable-libstdcxx-time=rt --enable-libstdcxx-threads --with-diagnostics-color=auto-if-env --with-tune=nocona --with-default-libstdcxx-abi=new --with-mpc-lib=/var/obj/mknative/amd64-x86_64/usr/src/external/lgpl3/mpc/lib/libmpc --with-mpfr-lib=/var/obj/mknative/amd64-x86_64/usr/src/external/lgpl3/mpfr/lib/libmpfr --with-gmp-lib=/var/obj/mknative/amd64-x86_64/usr/src/external/lgpl3/gmp/lib/libgmp --with-mpc-include=/usr/src/external/lgpl3/mpc/dist/src --with-mpfr-include=/usr/src/external/lgpl3/mpfr/dist/src --with-gmp-include=/usr/src/external/lgpl3/gmp/lib/libgmp/arch/x86_64 --enable-tls --disable-multilib --disable-libstdcxx-pch --build=x86_64--netbsd --host=x86_64--netbsd --with-sysroot=/var/obj/mknative/amd64-x86_64/usr/src/destdir.amd64
Thread model: posix
gcc version 7.5.0 (nb4 20200810) 
COMPILER_PATH=/usr/libexec/
LIBRARY_PATH=/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-Wall' '-O2' '-fstack-protector-all' '-fstack-protector-strong' '-march=native' '-pipe' '-shared' '-o' '../lib/libtinfow.so' '-L../lib'
ld -plugin /usr/libexec/liblto_plugin.so -plugin-opt=/usr/libexec/lto-wrapper -plugin-opt=-fresolution=/tmp//cchMdIl3.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --eh-frame-hdr -shared -o ../lib/libtinfow.so /usr/lib/crti.o /usr/lib/crtbeginS.o -L../lib ../obj_s/access.o ../obj_s/add_tries.o ../obj_s/alloc_ttype.o ../obj_s/codes.o ../obj_s/comp_captab.o ../obj_s/comp_error.o ../obj_s/comp_hash.o ../obj_s/comp_userdefs.o ../obj_s/db_iterator.o ../obj_s/doalloc.o ../obj_s/entries.o ../obj_s/fallback.o ../obj_s/free_ttype.o ../obj_s/getenv_num.o ../obj_s/home_terminfo.o ../obj_s/init_keytry.o ../obj_s/lib_acs.o ../obj_s/lib_baudrate.o ../obj_s/lib_cur_term.o ../obj_s/lib_data.o ../obj_s/lib_has_cap.o ../obj_s/lib_kernel.o ../obj_s/lib_keyname.o ../obj_s/lib_longname.o ../obj_s/lib_napms.o ../obj_s/lib_options.o ../obj_s/lib_raw.o ../obj_s/lib_setup.o ../obj_s/lib_termcap.o ../obj_s/lib_termname.o ../obj_s/lib_tgoto.o ../obj_s/lib_ti.o ../obj_s/lib_tparm.o ../obj_s/lib_tputs.o ../obj_s/lib_trace.o ../obj_s/lib_ttyflags.o ../obj_s/lib_twait.o ../obj_s/name_match.o ../obj_s/names.o ../obj_s/obsolete.o ../obj_s/read_entry.o ../obj_s/read_termcap.o ../obj_s/strings.o ../obj_s/tries.o ../obj_s/trim_sgr0.o ../obj_s/unctrl.o ../obj_s/visbuf.o ../obj_s/alloc_entry.o ../obj_s/captoinfo.o ../obj_s/comp_expand.o ../obj_s/comp_parse.o ../obj_s/comp_scan.o ../obj_s/parse_entry.o ../obj_s/write_entry.o ../obj_s/define_key.o ../obj_s/hashed_db.o ../obj_s/key_defined.o ../obj_s/keybound.o ../obj_s/keyok.o ../obj_s/version.o --as-needed -lgcc_s --no-as-needed -lgcc -lc --as-needed -lgcc_s --no-as-needed -lgcc /usr/lib/crtendS.o /usr/lib/crtn.o
COLLECT_GCC_OPTIONS='-v' '-Wall' '-O2' '-fstack-protector-all' '-fstack-protector-strong' '-march=native' '-pipe' '-shared' '-o' '../lib/libtinfow.so' '-L../lib'
---OUTPUT ENDS---


With ``-Wl,-shared'', there is an error (it's trying to create an executable):
---OUTPUT STARTS---
$ gcc -v -Wall -O2 -fstack-protector-all -fstack-protector-strong -march=native -pipe -Wl,-shared -o ../lib/libtinfow.so ../obj_s/access.o  ../obj_s/add_tries.o  ../obj_s/alloc_ttype.o  ../obj_s/codes.o  ../obj_s/comp_captab.o  ../obj_s/comp_error.o  ../obj_s/comp_hash.o  ../obj_s/comp_userdefs.o  ../obj_s/db_iterator.o  ../obj_s/doalloc.o  ../obj_s/entries.o  ../obj_s/fallback.o  ../obj_s/free_ttype.o  ../obj_s/getenv_num.o  ../obj_s/home_terminfo.o  ../obj_s/init_keytry.o  ../obj_s/lib_acs.o  ../obj_s/lib_baudrate.o  ../obj_s/lib_cur_term.o  ../obj_s/lib_data.o  ../obj_s/lib_has_cap.o  ../obj_s/lib_kernel.o  ../obj_s/lib_keyname.o  ../obj_s/lib_longname.o  ../obj_s/lib_napms.o  ../obj_s/lib_options.o  ../obj_s/lib_raw.o  ../obj_s/lib_setup.o  ../obj_s/lib_termcap.o  ../obj_s/lib_termname.o  ../obj_s/lib_tgoto.o  ../obj_s/lib_ti.o  ../obj_s/lib_tparm.o  ../obj_s/lib_tputs.o  ../obj_s/lib_trace.o  ../obj_s/lib_ttyflags.o  ../obj_s/lib_twait.o  ../obj_s/name_match.o  ../obj_s/names.o  ../obj_s/obsolete.o  ../obj_s/read_entry.o  ../obj_s/read_termcap.o  ../obj_s/strings.o  ../obj_s/tries.o  ../obj_s/trim_sgr0.o  ../obj_s/unctrl.o  ../obj_s/visbuf.o  ../obj_s/alloc_entry.o  ../obj_s/captoinfo.o  ../obj_s/comp_expand.o  ../obj_s/comp_parse.o  ../obj_s/comp_scan.o  ../obj_s/parse_entry.o  ../obj_s/write_entry.o  ../obj_s/define_key.o  ../obj_s/hashed_db.o  ../obj_s/key_defined.o  ../obj_s/keybound.o  ../obj_s/keyok.o  ../obj_s/version.o -L../lib 2>&1 | tee ~/work/log-fail.txt
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/lto-wrapper
Target: x86_64--netbsd
Configured with: /usr/src/tools/gcc/../../external/gpl3/gcc/dist/configure --target=x86_64--netbsd --enable-long-long --enable-threads --with-bugurl=http://www.NetBSD.org/Misc/send-pr.html --with-pkgversion='NetBSD nb4 20200810' --with-system-zlib --without-isl --enable-__cxa_atexit --enable-libstdcxx-time=rt --enable-libstdcxx-threads --with-diagnostics-color=auto-if-env --with-tune=nocona --with-default-libstdcxx-abi=new --with-mpc-lib=/var/obj/mknative/amd64-x86_64/usr/src/external/lgpl3/mpc/lib/libmpc --with-mpfr-lib=/var/obj/mknative/amd64-x86_64/usr/src/external/lgpl3/mpfr/lib/libmpfr --with-gmp-lib=/var/obj/mknative/amd64-x86_64/usr/src/external/lgpl3/gmp/lib/libgmp --with-mpc-include=/usr/src/external/lgpl3/mpc/dist/src --with-mpfr-include=/usr/src/external/lgpl3/mpfr/dist/src --with-gmp-include=/usr/src/external/lgpl3/gmp/lib/libgmp/arch/x86_64 --enable-tls --disable-multilib --disable-libstdcxx-pch --build=x86_64--netbsd --host=x86_64--netbsd --with-sysroot=/var/obj/mknative/amd64-x86_64/usr/src/destdir.amd64
Thread model: posix
gcc version 7.5.0 (nb4 20200810) 
COMPILER_PATH=/usr/libexec/
LIBRARY_PATH=/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-Wall' '-O2' '-fstack-protector-all' '-fstack-protector-strong' '-march=native' '-pipe' '-o' '../lib/libtinfow.so' '-L../lib'
ld -plugin /usr/libexec/liblto_plugin.so -plugin-opt=/usr/libexec/lto-wrapper -plugin-opt=-fresolution=/tmp//ccFx4JTz.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --eh-frame-hdr -dc -dp -e _start -dynamic-linker /usr/libexec/ld.elf_so -o ../lib/libtinfow.so /usr/lib/crt0.o /usr/lib/crti.o /usr/lib/crtbegin.o -L../lib -shared ../obj_s/access.o ../obj_s/add_tries.o ../obj_s/alloc_ttype.o ../obj_s/codes.o ../obj_s/comp_captab.o ../obj_s/comp_error.o ../obj_s/comp_hash.o ../obj_s/comp_userdefs.o ../obj_s/db_iterator.o ../obj_s/doalloc.o ../obj_s/entries.o ../obj_s/fallback.o ../obj_s/free_ttype.o ../obj_s/getenv_num.o ../obj_s/home_terminfo.o ../obj_s/init_keytry.o ../obj_s/lib_acs.o ../obj_s/lib_baudrate.o ../obj_s/lib_cur_term.o ../obj_s/lib_data.o ../obj_s/lib_has_cap.o ../obj_s/lib_kernel.o ../obj_s/lib_keyname.o ../obj_s/lib_longname.o ../obj_s/lib_napms.o ../obj_s/lib_options.o ../obj_s/lib_raw.o ../obj_s/lib_setup.o ../obj_s/lib_termcap.o ../obj_s/lib_termname.o ../obj_s/lib_tgoto.o ../obj_s/lib_ti.o ../obj_s/lib_tparm.o ../obj_s/lib_tputs.o ../obj_s/lib_trace.o ../obj_s/lib_ttyflags.o ../obj_s/lib_twait.o ../obj_s/name_match.o ../obj_s/names.o ../obj_s/obsolete.o ../obj_s/read_entry.o ../obj_s/read_termcap.o ../obj_s/strings.o ../obj_s/tries.o ../obj_s/trim_sgr0.o ../obj_s/unctrl.o ../obj_s/visbuf.o ../obj_s/alloc_entry.o ../obj_s/captoinfo.o ../obj_s/comp_expand.o ../obj_s/comp_parse.o ../obj_s/comp_scan.o ../obj_s/parse_entry.o ../obj_s/write_entry.o ../obj_s/define_key.o ../obj_s/hashed_db.o ../obj_s/key_defined.o ../obj_s/keybound.o ../obj_s/keyok.o ../obj_s/version.o --as-needed -lgcc_s --no-as-needed -lgcc -lc --as-needed -lgcc_s --no-as-needed -lgcc /usr/lib/crtend.o /usr/lib/crtn.o
ld: /usr/lib/crt0.o: in function `__start':
(.text+0x29): undefined reference to `__fini_array_start'
ld: /usr/lib/crt0.o: relocation R_X86_64_PC32 against undefined hidden symbol `__fini_array_start' can not be used when making a shared object
ld: final link failed: bad value
---OUTPUT ENDS---

Looks like ``-Wl,-shared'' is not the same as ``-shared''. I thought it was


Home | Main Index | Thread Index | Old Index