can not find -lgcc_s

Boris Kovalenko boris at ntmk.ru
Wed Aug 22 22:09:33 PDT 2007


Hello!

boris# cc -v -r -o common.o stream.o config.o memory.o
Using built-in specs.
Target: amd64-undermydesk-freebsd
Configured with: FreeBSD/amd64 system compiler
Thread model: posix
gcc version 4.2.0 20070514 [FreeBSD]
 /usr/bin/ld --eh-frame-hdr -V -dynamic-linker /libexec/ld-elf.so.1 -o 
common.o -r /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/crtbegin.o 
-L/usr/lib -L/usr/lib stream.o config.o memory.o -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 version 2.15 [FreeBSD] 2004-05-23
  Supported emulations:
   elf_i386_fbsd
   elf_x86_64_fbsd
/usr/bin/ld: cannot find -lgcc_s


ld -r -o common.o stream.o config.o memory.o
ld -shared -L/usr/lib -o libresin_os.so jni_os.o jni_jvmti.o jni_jvmdi.o 
-pthread
ld: unrecognized option '-pthread'
ld: use the --help option for usage information

IMHO, the resin3 in not ready for separate cc/ld compilation. But what 
type of workaround may I try to use?
> On Thu, Aug 23, 2007 at 09:49:20AM +0600, Boris Kovalenko wrote:
>   
>> Hello!
>>
>>    This didn't helped.
>>     
>>> On Wed, Aug 22, 2007 at 03:43:44PM +0600, "Boris Ju. Kovalenko / Б. Ю. 
>>> Коваленко" wrote:
>>>  
>>>       
>>>> Hello!
>>>>
>>>> cc -r -o common.o stream.o config.o memory.o 
>>>> -rpath=/lib:/usr/lib:/usr/local/lib -L/usr/lib -L/lib -lcrypto -lssl
>>>> /usr/bin/ld: cannot find -lgcc_s
>>>>
>>>> What is wrong? System is 7.0-CURRENT, AMD64, gcc 4.2.0, libgcc_s.so is 
>>>> present in /usr/lib and is a symlik to /lib/libgcc_s.so.1
>>>>    
>>>>         
>>> Rebuild the libtool port,
>>> portupgrade -f libtool.
>>>       
>
> Well, you can rerun the command manually, adding the -v option to the cc
> arguments to see what happens exactly.
>
> Looking closely on the command, it seems to be somewhat strange. -r switch
> for ld means partial linking. I was not able to find -r switch in gcc
> documentation, so, most likely, it shall be passed unmodified to ld.
> But, since gcc driver was not instructed to not do the final linking,
> it seems that it added neccessary libraries to the ld command line.
>
> Most likely, because libgcc_s.so is shared object instead of relocatable one,
> that is needed for incremental link, ld printed that diagnostic.
>
> Please, do two things:
> - rerun the command with cc -v and show me the output;
> - change the cc to ld (most likely, you set LD=CC somewhere) and rerun the
>   command. Incremental linking is usually done by direct invocation of ld.
>   
With respect,
    Boris



More information about the freebsd-ports mailing list