Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 19 Jun 2020 21:50:17 -0700
From:      "Jin Guojun[VFF]" <jguojun@gmail.com>
To:        freebsd-questions@freebsd.org
Subject:   Re: Why clang/cc needs libgcc_s in 11.4-R
Message-ID:  <53331bc9-b5c9-df83-0b01-a56061faa6bb@gmail.com>
In-Reply-To: <dd120fa2-d263-da99-f16a-82c15626b038@gmail.com>
References:  <dd120fa2-d263-da99-f16a-82c15626b038@gmail.com>

Next in thread | Previous in thread | Raw E-Mail | Index | Archive | Help
This looks like a clang issue since version 6 because there is 
libgcc_s.so in /usr/lib, and it is a symlink to /lib/libgcc_s.so.1.
A number of discussions about this issue on the Internet, but no real 
solution found.

Does anyone have an idea on how to work around this problem?

-Jin

ll /usr/lib/libgcc_s.so
lrwxr-xr-x  1 root  wheel  23 Jun 12 11:28 /usr/lib/libgcc_s.so@ -> 
../../lib/libgcc_s.so.1

ll  /lib/libgcc_s.so.1
-r--r--r--  1 root  wheel  98912 Jun 12 11:28 /lib/libgcc_s.so.1

file /lib/libgcc_s.so.1
/lib/libgcc_s.so.1: ELF 64-bit LSB shared object, x86-64, version 1 
(FreeBSD), statically linked, stripped

On 06/19/20 20:49, Jin Guojun[VFF] wrote:
> Just installed 11.4-R and try to build a shared library by passing 
> relocation flag from cc -Wl,-r to ld, but ld complains -lgcc_s not found:
>
> FBSD11: cc -Wl,-r -o libpixrect.so `lorder rast_mem.so rast_dump.so | 
> tsort`
> /usr/bin/ld: cannot find -lgcc_s
> cc: error: linker command failed with exit code 1 (use -v to see 
> invocation)
>
> FBSD11: cc -Wl,-r,-v -v -o libpixrect.so `lorder rast_mem.so 
> rast_dump.so | tsort`
> FreeBSD clang version 10.0.0 (git@github.com:llvm/llvm-project.git 
> llvmorg-10.0.0-0-gd32170dbd5b)
> Target: x86_64-unknown-freebsd11.4
> Thread model: posix
> InstalledDir: /usr/bin
>  "/usr/bin/ld" --eh-frame-hdr -dynamic-linker /libexec/ld-elf.so.1 
> --hash-style=both --enable-new-dtags -o libpixrect.so /usr/lib/crt1.o 
> /usr/lib/crti.o /usr/lib/crtbegin.o -L/usr/lib -r -v rast_dump.so 
> rast_mem.so -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc 
> --as-needed -lgcc_s --no-as-needed /usr/lib/crtend.o /usr/lib/crtn.o
> GNU ld 2.17.50 [FreeBSD] 2007-07-03
> /usr/bin/ld: cannot find -lgcc_s
>
> Why clang depends on gcc library?
> Is any flag or ENV variable can overwrite this requirement?
> If not, where can I get the libgcc_s?
>
> Thanks in advance,
> -Jin





Want to link to this message? Use this URL: <http://docs.FreeBSD.org/cgi/mid.cgi?53331bc9-b5c9-df83-0b01-a56061faa6bb>