bug#9492: cannot override CC when using system copy of libtool ("The wrong-gcc problem")
Ileana Dumitrescu <[email protected]> Mon, 21 Oct 2024 18:22:20 +0300
| Newsgroups | gmane.comp.gnu.libtool.bugs |
|---|---|
| Message-ID | <[email protected]> |
On 19/10/2024 16:57, Maxim Cournoyer wrote: > Hello Ileana, > > Ileana Dumitrescu <[email protected]> writes: > >> On 13/10/2024 17:01, Maxim Cournoyer wrote: >>> Hello, >>> Just a heads-up that this old bug is still relevant. It means that >>> one >>> cannot use libtool stand-alone (without Autotools) and expect >>> cross-compilation or even just switching temporarily compilers >>> (e.g. from 'gcc' to 'clang' via CC to test something). Heres' what the >>> failure look like: >>> --8<---------------cut here---------------start------------->8--- >>> libtool: link: gcc -shared -fPIC -DPIC build/obj/Core/.libs/apu.c.o >>> build/obj/Core/.libs/camera.c.o build/obj/Core/.libs/cheats.c.o >>> build/obj/Core/.libs/debugger.c.o build/obj/Core/.libs/display.c.o >>> build/obj/Core/.libs/gb.c.o build/obj/Core/.libs/joypad.c.o >>> build/obj/Core/.libs/mbc.c.o build/obj/Core/.libs/memory.c.o >>> build/obj/Core/.libs/printer.c.o build/obj/Core/.libs/random.c.o >>> build/obj/Core/.libs/rewind.c.o build/obj/Core/.libs/rumble.c.o >>> build/obj/Core/.libs/save_state.c.o build/obj/Core/.libs/sgb.c.o >>> build/obj/Core/.libs/sm83_cpu.c.o >>> build/obj/Core/.libs/sm83_disassembler.c.o >>> build/obj/Core/.libs/symbol_hash.c.o build/obj/Core/.libs/timing.c.o >>> build/obj/Core/.libs/workboy.c.o -Wl,-soname -Wl,libsameboy.so.0 -o >>> build/lib/.libs/libsameboy.so.0.0.0 >>> /gnu/store/gpq3h81bzjpirwnc0fzwsph788b9rwn4-libtool-2.5.3/bin/libtool: line 10778: gcc: command not found >>> make: *** [Makefile:832: build/lib/libsameboy.la] Error 127 >>> make: *** Waiting for unfinished jobs.... >>> error: in phase 'build': uncaught exception: >>> --8<---------------cut here---------------end--------------->8--- >> >> I have not been able to reproduce overriding CC in libtool 2.2.6, but I >> do not think it would be good practice to do. > > That's what I've been told elsewhere too. Hence my interest in having > libtool support it, if that's not too difficult. > >>> That's when building some Make-based software that calls libtool >>> directly. Here, the libtool version was built with GCC (has baked >>> CC="gcc" variable around line 326), which is what it uses when linking >>> with its $archive_cmds variable defined a bit later (line 368): >>> --8<---------------cut here---------------start------------->8--- >>> archive_cmds="\$CC -shared \$pic_flag \$libobjs \$deplibs \$compiler_flags \$wl-soname \$wl\$soname -o \$lib" >>> --8<---------------cut here---------------end--------------->8--- >>> Seems this should be able to fix? Check for environment CC, if not >>> set, >>> defaults to gcc? Would this simple fix be enough? >>> >> >> If CC is conditional, other configuration would also need to be >> conditional for the C compiler set. I have attached two versions of >> libtool, one with CC=gcc and the other with CC=clang. When diffing them >> you can see the other variables that would need to be updated if CC was >> updated at runtime for libtool. >> >> If you want to do a quick test and change CC, you can edit the generated >> libtool to do this and then revert the change after your test. However, >> you could also generate multiple standalone versions of libtool and >> switch which is referenced so that the other configuration variables are >> set properly. >> >> I would consider this to be more of a feature request than a bug with >> libtool to allow for defaults set during configuration to be updated, >> but there may be files other than libtool generated during configuration >> that would also need to be updated. Generally, I recommend reconfiguring >> your project whenever CC is changed. > > The libtool manual doesn't outright says that libtool should NOT be used > standalone. It doesn't warn against the current gotchas (cannot change > CC, cannot cross-compile). Hence I'd perhaps consider it a bug. This section of the libtool manual should help you understand how to use a system-specific libtool script installed in your binary directory: https://www.gnu.org/software/libtool/manual/libtool.html#Configuring-libtool libtool can be used standalone as long as it has been configured for the "compiler suite and operating system that are used to compile your package." Cross-compilation is also possible if libtool has been configured to do it. To allow CC to be overridden, libtool would not set all of the configuration variables it needs for the newly set compiler, so it would not operate correctly. libtool would need to reconfigure itself if CC was changed during execution... This might be possible if an option was added to libtool to reconfigure itself, but I am open to other suggestions for ways to approach making libtool more dynamic for users. > I'll see if I can get to some required level of M4-foo to attempt some > partial fix (to get started). I've been trying stuff but without success > so far, due to the layering of M4 then shell script and still being a > bit unclear on the expansion order/variables used. > > Thank you. > -- Ileana Dumitrescu GPG Public Key: FA26 CA78 4BE1 8892 7F22 B99F 6570 EA01 146F 7354
OpenPGP_0x6570EA01146F7354.asc
(application/pgp-keys, 6.3 KB)
-----BEGIN PGP PUBLIC KEY BLOCK----- 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 =fGTx -----END PGP PUBLIC KEY BLOCK-----
OpenPGP_signature.asc
(application/pgp-signature, 840 B)
-----BEGIN PGP SIGNATURE----- wsF5BAABCAAjFiEE+ibKeEvhiJJ/IrmfZXDqARRvc1QFAmcWcawFAwAAAAAACgkQZXDqARRvc1SA 7A//cb77efqcAtWiTZIAxPpKY9P0WzSmeNEsE9B+cTk2GX0/3hZPb/g3qBriSqyiMJ8aRSTAItYF 4/I97h+llfO5dmBz+gYN808FQt76cnojaZPIGeVoJTexUVXUWhGxo2V9q+alI80p5g7O64Gjih+7 MIqQqHBJAk1qKmHcQKOdo4b+2MCPACClX6iy3JQtQ8V/qHec6iAmoJ78ZozDH+E83sFfRAvG1DPf Uxqs3bW/ntTUNqnsA/HLj5I301vNPZzkXW3c70UVXSwooNrNPEgBjhP6xrTI7jFQTFPztriXkZmR p9dnmmnRPAIoph5iSSwOUGPN+k/jQ9nBQ5nS8I7B8jF3nZY/SdPV2UWRA4fmjg32WzDtOa5btL/F LVtSXS+ZzJeFgkS8MJReZ3XIHF4b9Or08CIfrxWGoIcUnYCkE6x1rrhVoiOT5iSm7jZXZzn6uVZv DQFMxN6rfmHm0KsX8krkOp7neZ7U+iMnHDt70REcge7flARh/u7GYb69LvDEQGj1Shs9Wo+2Vjqi oJWTLBgM4VeMVfME8ksm5YI8F+873j0vOE65Ung6/MKGXZHEJEuPriBv259iNcepDfooooAcUSe9 IrQIZNYEw/ZEhsrqyuOYhEk13VM+BAFQRJ6s03CPABbcajVBu9uGGXeZmsJ+zbQMUiJ/BLwlkIWx K60= =kDF2 -----END PGP SIGNATURE-----