When running a `make install` on the lastest lang/gnat12 from the ports tree with the default configuration, the build eventually fails at this step: /usr/ports/lang/gnat12/work/.build/./gcc/xgcc -B/usr/ports/lang/gnat12/work/.build/./gcc/ -B/usr/local/gnat12/x86_64-portbld-freebsd14.0/bin/ -B/usr/local/gnat12/x86_64-portbld-freebsd14.0/lib/ -isystem /usr/local/gnat12/x86_64-portbld-freebsd14.0/include -isystem /usr/local/gnat12/x86_64-portbld-freebsd14.0/sys-include -O2 -g -O2 -pipe -DLIBICONV_PLUG -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing -DIN_GCC -fPIC -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fpic -pthread -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -shared -nodefaultlibs -Wl,--soname=libgcc_s.so.1 -Wl,--version-script=libgcc.map -o ./libgcc_s.so.1.tmp -g -O2 -pipe -DLIBICONV_PLUG -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing -B./ _muldi3_s.o _negdi2_s.o _lshrdi3_s.o _ashldi3_s.o _ashrdi3_s.o _cmpdi2_s.o _ucmpdi2_s.o _clear_cache_s.o _trampoline_s.o __main_s.o _absvsi2_s.o _absvdi2_s.o _addvsi3_s.o _addvdi3_s.o _subvsi3_s.o _subvdi3_s.o _mulvsi3_s.o _mulvdi3_s.o _negvsi2_s.o _negvdi2_s.o _ctors_s.o _ffssi2_s.o _ffsdi2_s.o _clz_s.o _clzsi2_s.o _clzdi2_s.o _ctzsi2_s.o _ctzdi2_s.o _popcount_tab_s.o _popcountsi2_s.o _popcountdi2_s.o _paritysi2_s.o _paritydi2_s.o _powisf2_s.o _powidf2_s.o _powixf2_s.o _powitf2_s.o _mulsc3_s.o _muldc3_s.o _mulxc3_s.o _multc3_s.o _divsc3_s.o _divdc3_s.o _divxc3_s.o _divtc3_s.o _bswapsi2_s.o _bswapdi2_s.o _clrsbsi2_s.o _clrsbdi2_s.o _fixunssfsi_s.o _fixunsdfsi_s.o _fixunsxfsi_s.o _fixsfdi_s.o _fixdfdi_s.o _fixxfdi_s.o _fixunssfdi_s.o _fixunsdfdi_s.o _fixunsxfdi_s.o _floatdisf_s.o _floatdidf_s.o _floatdixf_s.o _floatundisf_s.o _floatundidf_s.o _floatundixf_s.o _divdi3_s.o _moddi3_s.o _divmoddi4_s.o _udivdi3_s.o _umoddi3_s.o _udivmoddi4_s.o _udiv_w_sdiv_s.o cpuinfo_s.o sfp-exceptions_s.o _divhc3_s.o _mulhc3_s.o addtf3_s.o divtf3_s.o eqtf2_s.o getf2_s.o letf2_s.o multf3_s.o negtf2_s.o subtf3_s.o unordtf2_s.o fixtfsi_s.o fixunstfsi_s.o floatsitf_s.o floatunsitf_s.o fixtfdi_s.o fixunstfdi_s.o floatditf_s.o floatunditf_s.o fixtfti_s.o fixunstfti_s.o floattitf_s.o floatuntitf_s.o extendhfsf2_s.o extendhfdf2_s.o extendhftf2_s.o extendhfxf2_s.o extendsfdf2_s.o extendsftf2_s.o extenddftf2_s.o extendxftf2_s.o trunctfhf2_s.o truncxfhf2_s.o truncdfhf2_s.o truncsfhf2_s.o trunctfsf2_s.o truncdfsf2_s.o trunctfdf2_s.o trunctfxf2_s.o fixhfti_s.o fixunshfti_s.o floattihf_s.o floatuntihf_s.o eqhf2_s.o enable-execute-stack_s.o unwind-dw2_s.o unwind-dw2-fde-dip_s.o unwind-sjlj_s.o unwind-c_s.o emutls_s.o libgcc.a -lc && rm -f ./libgcc_s.so && if [ -f ./libgcc_s.so.1 ]; then mv -f ./libgcc_s.so.1 ./libgcc_s.so.1.backup; else true; fi && mv ./libgcc_s.so.1.tmp ./libgcc_s.so.1 && ln -s libgcc_s.so.1 ./libgcc_s.so /usr/local/bin/ld: skipping incompatible /lib/libc.so.7 when searching for /lib/libc.so.7 /usr/local/bin/ld: cannot find /lib/libc.so.7: file in wrong format /usr/local/bin/ld: skipping incompatible /lib/libc.so.7 when searching for /lib/libc.so.7 /usr/local/bin/ld: skipping incompatible /usr/lib/libc_nonshared.a when searching for /usr/lib/libc_nonshared.a /usr/local/bin/ld: cannot find /usr/lib/libc_nonshared.a: file in wrong format /usr/local/bin/ld: skipping incompatible /usr/lib/libc_nonshared.a when searching for /usr/lib/libc_nonshared.a collect2: error: ld returned 1 exit status gmake[4]: *** [Makefile:995: libgcc_s.so] Error 1 gmake[4]: Leaving directory '/usr/ports/lang/gnat12/work/.build/x86_64-portbld-freebsd14.0/32/libgcc' gmake[3]: *** [Makefile:1211: multi-do] Error 1 gmake[3]: Leaving directory '/usr/ports/lang/gnat12/work/.build/x86_64-portbld-freebsd14.0/libgcc' gmake[2]: *** [Makefile:127: all-multi] Error 2 gmake[2]: *** Waiting for unfinished jobs.... gmake[2]: Leaving directory '/usr/ports/lang/gnat12/work/.build/x86_64-portbld-freebsd14.0/libgcc' gmake[1]: *** [Makefile:14059: all-target-libgcc] Error 2 gmake[1]: Leaving directory '/usr/ports/lang/gnat12/work/.build' gmake: *** [Makefile:1030: all] Error 2 ===> Compilation failed unexpectedly. I tried toggling several options around how to bootstrap the install, but was unable to get it to work. Also did the "make jobs unsafe" flag set to yes, and same failure.
This ports builds fine in poudriere, and a package for x86_64-portbld-freebsd14.0 is available from the compilation farm... I do not know this error, and I have to investigate. Just to check: could you please add the output of `file /lib/libc.so.7' ?
Hi Thierry, Certainly. Here is the output you requested: file /lib/libc.so.7 : /lib/libc.so.7: ELF 64-bit LSB shared object, x86-64, version 1 (FreeBSD), dynamically linked, for FreeBSD 14.0 (1400097), stripped Let me know how I can help further.
Well, it's OK. Let me think...
I've also been unable to build this port since about the same time (sorry, not sure exactly, but almost certainly early March, and late February at the latest). However, for me, it fails with a different error. I use synth to build ports; here's the end of its log for this one: -------------------------------------------------------------------------------- -- Phase: configure -------------------------------------------------------------------------------- ===> Configuring for gnat12-12.2.0_7 /usr/bin/find /construction/xports/lang/gnat12/work/gcc-12.2.0/gcc/config -name "*freebsd.h" | /usr/bin/xargs /usr/bin/sed -i.bak -e 's|!static:[[:blank:]]|!static: --hash-style=gnu -rpath /usr/local/gnat12/lib |' echo "-=> GNAT [FreeBSD64]" > /construction/xports/lang/gnat12/work/gcc-12.2.0/gcc/REVISION echo "release" > /construction/xports/lang/gnat12/work/gcc-12.2.0/gcc/DEV-PHASE configure: loading site script /xports/Templates/config.site checking build system type... x86_64-portbld-freebsd13.2 checking host system type... x86_64-portbld-freebsd13.2 checking target system type... x86_64-portbld-freebsd13.2 checking for a BSD-compatible install... /usr/bin/install -c checking whether ln works... yes checking whether ln -s works... yes checking for a sed that does not truncate output... (cached) /usr/bin/sed checking for gawk... (cached) /usr/bin/awk checking for libatomic support... yes checking for libitm support... yes checking for libsanitizer support... yes checking for libvtv support... no checking for libphobos support... yes checking for gcc... /construction/xports/lang/gnat12/work/gnat-x86_64-freebsd.13-12.2.0_6/bin/gcc checking whether the C compiler works... no configure: error: in `/construction/xports/lang/gnat12/work/.build': configure: error: C compiler cannot create executables See `config.log' for more details ===> Script "configure" failed unexpectedly. Please report the problem to thierry@FreeBSD.org [maintainer] and attach the "/construction/xports/lang/gnat12/work/.build/config.log" including the output of the failure of your make command. Also, it might be a good idea to provide an overview of all packages installed on your system (e.g. a /usr/local/sbin/pkg-static info -g -Ea). *** Error code 1 Stop. make: stopped in /xports/lang/gnat12
In order to let lang/gcc12 and lang/gnat12 share the same distfile, I have just upgraded this port to 12.3.0 - with the same assets for the moment. Could you please tell me if your issue still exists with this version?
(In reply to Thierry Thomas from comment #5) Sorry, it still happens. Or at least something that looks at a glance like the same thing happens; I haven't pored over it to know that it's exactly the same or not. Honestly I'm not even sure why Synth wants to build this. It's not one of the things that I've explicitly asked it to build, it's not installed on my system, and the fact that it fails doesn't cause any other ports to fail or to be skipped. Anyway, here's the end of the log from this attempt: -------------------------------------------------------------------------------- -- Phase: configure -------------------------------------------------------------------------------- ===> Configuring for gnat12-12.3.0 /usr/bin/find /construction/xports/lang/gnat12/work/gcc-12.3.0/gcc/config -name "*freebsd.h" | /usr/bin/xargs /usr/bi n/sed -i.bak -e 's|!static:[[:blank:]]|!static: --hash-style=gnu -rpath /usr/local/gnat12/lib |' echo "-=> GNAT [FreeBSD64]" > /construction/xports/lang/gnat12/work/gcc-12.3.0/gcc/REVISION echo "release" > /construction/xports/lang/gnat12/work/gcc-12.3.0/gcc/DEV-PHASE configure: loading site script /xports/Templates/config.site checking build system type... x86_64-portbld-freebsd13.2 checking host system type... x86_64-portbld-freebsd13.2 checking target system type... x86_64-portbld-freebsd13.2 checking for a BSD-compatible install... /usr/bin/install -c checking whether ln works... yes checking whether ln -s works... yes checking for a sed that does not truncate output... (cached) /usr/bin/sed checking for gawk... (cached) /usr/bin/awk checking for libatomic support... yes checking for libitm support... yes checking for libsanitizer support... yes checking for libvtv support... no checking for libphobos support... yes checking for gcc... /construction/xports/lang/gnat12/work/gnat-x86_64-freebsd.13-12.2.0_6/bin/gcc checking whether the C compiler works... no configure: error: in `/construction/xports/lang/gnat12/work/.build': configure: error: C compiler cannot create executables See `config.log' for more details ===> Script "configure" failed unexpectedly. Please report the problem to thierry@FreeBSD.org [maintainer] and attach the "/construction/xports/lang/gnat12/work/.build/config.log" including the output of the failure of your make command. Also, it might be a good idea to provide an overview of all packages installed on your system (e.g. a /usr/local/sbin/pkg-static info -g -Ea). *** Error code 1 Stop. make: stopped in /xports/lang/gnat12
This is very strange! Could you please attach the config.log?
I'm not sure... I believe the /construction path is something that's generated automatically by Synth when needed and destroyed automatically by Synth when it's done (perhaps via zfs? not sure). In any case, I don't have a /construction path on my machine right now. I don't see any obvious configuration options to keep the directory, or anything like that. I'll ask on the Synth forums, and I'll keep poking around myself too.
Created attachment 249270 [details] config.log
I notice that the immediate issue seems to be this: ld-elf.so.1: Shared object "libintl.so.8" not found, required by "gcc" I don't know much about this stuff, but I think that has something to do with NLS? So I should probably mention that I compile everything with OPTIONS_UNSET+=NLS.
(In reply to Robert William Vesterman from comment #10) > I compile everything with OPTIONS_UNSET+=NLS Yes, this is surely the problem! In Makefile (line #91), there is "NLS_USES= gettext-runtime", but without NLS you don't get it. This means that gettext might be required in all cases. Could you please modify line #24 and add gettext-runtime? It will become: USES= bison gmake iconv libtool localbase tar:xz gettext-runtime
(In reply to Thierry Thomas from comment #11) That seems to have worked. Thank you!
Thanks for the feedback. ckenna@hey.com does it solve your issue too?
A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=8d9daace01d0b71130cd0e8fbfcf4dc987ff756c commit 8d9daace01d0b71130cd0e8fbfcf4dc987ff756c Author: Thierry Thomas <thierry@FreeBSD.org> AuthorDate: 2024-03-18 20:32:22 +0000 Commit: Thierry Thomas <thierry@FreeBSD.org> CommitDate: 2024-03-18 20:32:22 +0000 lang/gnat1?: force the usage of gettext It appears that gettext is required even when NLS is disabled (surely because the compiler used for bootstrap has been built with NLS). No bump of PORTREVISION needed. PR: 277508 Reported by: bob (at) vesterman.com lang/gnat12/Makefile | 3 +-- lang/gnat13/Makefile | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-)
Just to follow up thoroughly: I tried with the updated port (as opposed to with manual modification of the Makefile), and that worked fine too. Thanks again!
That machine (which had the issue that was then fixed) is running 13.2. On a different machine, which is running 14.0, I'm now getting the same issue that the OP got ("cannot find /lib/libc.so.7: file in wrong format" and so forth).
Trying to troubleshoot this a little. I would like to note up front that I don't really know what I'm doing. With that said, this error message... -------- "cannot find /lib/libc.so.7: file in wrong format" -------- ... led me to discover the "objdump -f" command. Using it on libc.so.7 yields... -------- /lib/libc.so.7: file format elf64-x86-64 architecture: x86_64 start address: 0x0000000000000000 -------- ... which looks fine to me (but like I said, I don't really know what I'm doing). I thought maybe comparing it to the other files in /lib might reveal something, but they're all identical (except the names): -------- $ find /lib -type f | xargs objdump -f | grep "format" | awk -F "file format " '{print $2}' | sort | uniq -c 93 elf64-x86-64 -------- $ find /lib -type f | xargs objdump -f | grep "arch" | awk '{print $2}' | sort | uniq -c 93 x86_64 -------- $ find /lib -type f | xargs objdump -f | grep "start address" | awk '{print $3}' | sort | uniq -c 93 0x0000000000000000 -------- But I happened to notice something by doing an ls -l: This file (libc.so.7) is marked with one "last modified date" (Jan. 26) whereas it seemed like almost all the rest of them where another (Nov. 10). Upon closer inspection, I found that that's not true, but it's close: -------- ls -l /lib | cut -c 34- | awk '{print $1 " " $2}' | sort | uniq -c 1 1 Feb 14 6 Jan 26 69 Nov 10 -------- I suspected that this might have something to do with a freebsd-update, and checked zfs for the snapshots that get automatically taken when one is done: -------- $ zfs list -t all | grep ROOT zos/ROOT 10.5G 1.62T 96K none zos/ROOT/14.0-RELEASE-p4_2024-02-14_160451 8K 1.62T 4.30G / zos/ROOT/14.0-RELEASE-p5_2024-04-02_145742 8K 1.62T 4.43G / zos/ROOT/14.0-RELEASE_2024-01-26_201004 8K 1.62T 998M / zos/ROOT/default 10.5G 1.62T 7.08G / zos/ROOT/default@2024-01-26-20:10:04-0 317M - 998M - zos/ROOT/default@2024-02-14-16:04:51-0 79.5M - 4.30G - zos/ROOT/default@2024-04-02-14:57:42-0 78.8M - 4.43G - -------- So yeah, there it is, updates done on January 26 and February 14, just like the modification dates in /lib. I guess that's expected, but... I'm wondering if perhaps this is something related to the upgrade done on January 26? Which (I'm not sure, but it looks to me like) was from 14.0-RELEASE to 14.0-RELEASE-p4? I don't know how to check any of the following (and poking around on the internet hasn't helped yet): * Is the libc.so.7 in p4 supposed to be different from the one in the original 14.0? Not necessarily from the one in p3 - I'm pretty sure I went straight from the original 14.0-RELEASE to 14.0-RELEASE-p4. * Is the one in p6 (which is what I'm currently running) supposed to be the same as the one in p4? * Is there a way (e.g. a checksum that is published somewhere) to verify that the one I have is the one that's supposed to be in p6?
It's now building for me. I see there was a commit earlier this week for a different bug report - I guess the fix for that one probably fixed this one too? Thanks!
(In reply to Robert William Vesterman from comment #18) Thanks for the follow-up! I had no idea about the reported error... I'm closing this report: if it occurs again, please re-open, or open a new one.