On 2 July 2010 22:51, Matthew Fleming <mdf...@gmail.com> wrote: > I have the following Makefile for a shared library at $work: > > ISI_TOP= ../.. > > LIB= isi_date > SHLIB_MAJOR= 1 > SHLIB_MINOR= 0 > SRCS= date.c date_parser.new.c lex.yy.c > INCS= date.h > INCLUDEDIR= /usr/include/isi_date > > YFLAGS+= -vt > FLEX= /usr/bin/flex > LDADD= -ll > > CLEANFILES+= date_parser.new.c y.tab.h y.tab.c lex.yy.c y.output \ > check_date.log test > > lex.yy.c: date_lexer.new.l > ${FLEX} $> > > CFLAGS+= -I${.CURDIR} > #CFLAGS+= -g > > .include "${ISI_TOP}/isi.lib.mk" > > > > This builds fine as on i386. I'm trying to get all our user-space to > be 64-bit clean, and I run into an error when building on amd64: > > /data/sb/BR_MDF_64CLEAN/obj/data/sb/BR_MDF_64CLEAN/src/tmp/usr/bin/ld: > /data/sb/BR_MDF_64CLEAN/obj/data/sb/BR_MDF_64CLEAN/src/tmp/usr/lib/libl.a(libyywrap.o): > relocation R_X86_64_32 can not be used when making a shared object; > recompile with -fPIC > /data/sb/BR_MDF_64CLEAN/obj/data/sb/BR_MDF_64CLEAN/src/tmp/usr/lib/libl.a: > could not read symbols: Bad value > > The following diff makes the compile work, but I have no idea (yet) > whether this will run, if it's the right solution, etc. > > > Index: usr.bin/lex/lib/Makefile > =================================================================== > --- usr.bin/lex/lib/Makefile (revision 153343) > +++ usr.bin/lex/lib/Makefile (working copy) > @@ -4,11 +4,16 @@ > > LIB= ln > SRCS= libmain.c libyywrap.c > -NO_PIC= > +#NO_PIC= > > +SHLIB_MAJOR= 1 > +SHLIB_MINOR= 0 > + > .if ${MK_INSTALLLIB} != "no" > LINKS= ${LIBDIR}/libln.a ${LIBDIR}/libl.a > LINKS+= ${LIBDIR}/libln.a ${LIBDIR}/libfl.a > +LINKS+= ${LIBDIR}/libln.so ${LIBDIR}/libl.so > +LINKS+= ${LIBDIR}/libln${LIB_SUFFIX}.so ${LIBDIR}/libl${LIB_SUFFIX}.so > .endif > > .if ${MK_PROFILE} != "no" > > > Thanks, > matthew > _______________________________________________ > freebsd-hackers@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-hackers > To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org" >
Although maybe not helpful but have you considered using automake/libtool instead makes it so much simpler in my opinion. --Phil _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"