Re: ld: error: undefined symbol: __libc_start1

From: Dimitry Andric <dim_at_FreeBSD.org>
Date: Sun, 31 Dec 2023 17:27:26 UTC
On 31 Dec 2023, at 18:15, Mario Marietto <marietto2008@gmail.com> wrote:
> 
> I'm not able to install sudo on my FreeBSD 14.0-RELEASE-p3 amd64
> 
> Code:
> 
> marietto:/usr/ports/security/sudo # make
> 
> ===>  License sudo accepted by the user
> ===>   sudo-1.9.15p4 depends on file: /usr/local/sbin/pkg - found
> ===> Fetching all distfiles required by sudo-1.9.15p4 for building
> ===>  Extracting for sudo-1.9.15p4
> => SHA256 Checksum OK for sudo-1.9.15p4.tar.gz.
> ===>  Patching for sudo-1.9.15p4
> ===>  Applying FreeBSD patches for sudo-1.9.15p4 from
> /usr/ports/security/sudo/files
> ===>   sudo-1.9.15p4 depends on package: pkgconf>=1.3.0_1 - found
> ===>   sudo-1.9.15p4 depends on package: gettext-runtime>=0.22_1 - found
> ===>   sudo-1.9.15p4 depends on executable: msgfmt - found
> ===>   sudo-1.9.15p4 depends on file: /usr/local/lib/libcrypto.so.12 - found
> ===>   sudo-1.9.15p4 depends on shared library: libintl.so - found
> (/usr/local/lib/libintl.so)
> ===>  Configuring for sudo-1.9.15p4
> configure: loading site script /usr/ports/Templates/config.site
> checking for gcc... cc
> checking whether the C compiler works... no
> configure: error: in '/usr/ports/security/sudo/work/sudo-1.9.15p4':
> configure: error: C compiler cannot create executables
> See 'config.log' for more details
> ===>  Script "configure" failed unexpectedly.
> 
> Please report the problem to garga@FreeBSD.org [maintainer] and attach
> the "/usr/ports/security/sudo/work/sudo-1.9.15p4/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[1]: stopped in /usr/ports/security/sudo
> *** Error code 1
> 
> Stop.
> make: stopped in /usr/ports/security/sudo
> 
> 
> More informations are located here :
> 
> /usr/local/sbin/pkg-static info -g -Ea =
> https://pastebin.ubuntu.com/p/3fCY3hFRCG/
> 
> /usr/ports/security/sudo/work/sudo-1.9.15p4/config.log =
> https://pastebin.ubuntu.com/p/PK2QxNHwkk/
> 
> On the log you will see this error :
> 
> configure:4253: checking whether the C compiler works
> configure:4275: cc -O2 -pipe -I/usr/local/include
> -fstack-protector-strong -fno-strict-aliasing -lgcc -L/usr/local/lib
> -lintl -Wl,-rpath,/usr/local/lib -fstack-protector-strong conftest.c
>> &5
> ld: error: undefined symbol: __libc_start1
>>>> referenced by crt1_s.S:83 (/usr/src/lib/csu/amd64/crt1_s.S:83)
>>>> /usr/lib/crt1.o_start)
> cc: error: linker command failed with exit code 1 (use -v to see invocation)
> 
> 
> that makes me suspect some misconfiguration on the gcc / cc / clang
> compiler. I expect that sudo won't be installed telling that it has
> been already installed from packages,but the error is different. How
> can I fix it ?

Try running the linker command with --verbose, by passing -Wl,--verbose on the compiler command line. It looks like it is picking up a bad libc somehow. Maybe some old copy that was never cleaned out?

-Dimitry