Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 22 Jun 2015 11:08:38 +0800
From:      Julian Elischer <julian@freebsd.org>
To:        freebsd-current <freebsd-current@freebsd.org>
Subject:   odd compile failure with both clang and gcc.. weird (standard) library install
Message-ID:  <55877C36.70407@freebsd.org>

next in thread | raw e-mail | index | archive | help
Working on -current  as of about March 7.

I'm building some software that uses the standard FreeBSD Makefile 
includes
but it's failing on its library linking (the linking of a library 
which is part of the application)
with the following error

[...]
building shared library libcbc.so.1
FreeBSD clang version 3.5.1 (tags/RELEASE_351/final 225668) 20150115
Target: i386-unknown-freebsd11.0
Thread model: posix
  "/usr/bin/ld" --eh-frame-hdr -Bshareable --hash-style=both 
--enable-new-dtags -m elf_i386_fbsd -o libcbc.so.1 /usr/lib/crti.o 
/usr/lib/crtbeginS.o -L/usr/lib -x --fatal-warnings 
--warn-shared-textrel -soname libcbc.so.1 valii.So val.So using.So 
ucase.So toconsole.So time.So tan.So tab.So sval.So strs.So string.So 
strassign.So sqr.So spawn.So size.So sin.So shift.So sgn.So setfile.So 
setarray.So save_string.So rnd.So right.So rename.So readstr.So 
readreal.So readlong.So readline.So readint.So putget.So prline.So 
printstr.So printreal.So printlong.So printlf.So printint.So 
printdollar.So printcomma.So printbyte.So pos.So outpipe.So mod.So 
mid.So match.So log.So len.So left.So lcase.So keyboard.So ipwr.So 
inti.So integer.So input.So inline.So inkey.So if_end.So gosubstack.So 
getline.So getenv.So fre.So float.So finishio.So files.So extendstr.So 
exp.So dfree.So csize.So cos.So constat.So conout.So conchar.So 
commonload.So chr.So checkarray.So chain2.So cent_up.So cent_round.So 
bconcat.So basopen.So basinit.So basclose.So b_strcmp.So b_readbyte.So 
b_funcstr.So b_fnroutines.So atan.So asc.So array.So abs.So 
writebyte.So readbyte.So loadarray.So handle_err.So findchannel.So 
dumparray.So commonstr.So b_tmpstrings.So addtostr.So b_stralloc.So 
setinput.So cutpipe.So catch_signal.So printerror.So ltoa.So 
flushbuffer.So -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc 
--as-needed -lgcc_s --no-as-needed /usr/lib/crtendS.o /usr/lib/crtn.o
/usr/bin/ld: cannot find -lgcc_s
clang: error: linker command failed with exit code 1 (use -v to see 
invocation)
*** Error code 1

Stop.

the same error happens with gcc as the compiler..

so the obvious question is "why does clang want to link with libgcc?"
and another question is:
why can't it find  it? At least for that there is an answer:
julian@vps1:ls -la /usr/lib/libgcc_s.so
lrwxr-xr-x  1 root  wheel  46 Apr 30 08:13 /usr/lib/libgcc_s.so -> 
/usr/obj/usr/src-current/tmp/lib/libgcc_s.so.1
but I've deleted /usr/obj.
Does anyone know WHY the "make installworld" back in March just made 
symlinks for this (and a whole bunch more) libraries?
and has it been fixed?

As for the libgcc question,
the Makefile appears as shown below. If there is anything I should 
have done differently I'd like to know.


# @(#)Makefile    8.1 (Berkeley) 6/4/93
#
# Compile up the cbc support library
#
CBCROOT=${HOME}/cbc
LIBDIR=${CBCROOT}/lib

CFLAGS += -I  $(.CURDIR)/../../include

LIB=    cbc
SHLIB_MAJOR= 1
SHLIB_MINOR= 0
SRCS= abs.c addtostr.c array.c asc.c atan.c b_fnroutines.c 
b_funcstr.c    \
     b_readbyte.c b_stralloc.c b_strcmp.c b_tmpstrings.c basclose.c    \
     basinit.c basopen.c bconcat.c catch_signal.c cent_round.c \
     cent_up.c chain2.c checkarray.c chr.c commonload.c commonstr.c    \
     conchar.c conout.c constat.c cos.c csize.c cutpipe.c dfree.c    \
     dumparray.c exp.c extendstr.c files.c findchannel.c finishio.c    \
     float.c flushbuffer.c fre.c getenv.c getline.c gosubstack.c    \
     handle_err.c if_end.c inkey.c inline.c input.c integer.c inti.c    \
     ipwr.c keyboard.c lcase.c left.c len.c loadarray.c log.c ltoa.c    \
     match.c mid.c mod.c outpipe.c pos.c printbyte.c printcomma.c    \
     printdollar.c printerror.c printint.c printlf.c printlong.c    \
     printreal.c printstr.c prline.c putget.c readbyte.c readint.c    \
     readline.c readlong.c readreal.c readstr.c rename.c right.c    \
     rnd.c save_string.c setarray.c setfile.c setinput.c sgn.c 
shift.c    \
     sin.c size.c spawn.c sqr.c strassign.c string.c strs.c sval.c    \
     tab.c tan.c time.c toconsole.c ucase.c using.c val.c valii.c    \
     writebyte.c

NO_MAN=

beforeinstall:
     -@mkdir -p ${LIBDIR}
#    ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 ${.CURDIR}/search.h \
#        ${DESTDIR}/usr/include

#afterinstall:
#    ln -f lib$(LIB) ../../libcbc.a

.include <bsd.lib.mk>




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?55877C36.70407>