On Fri, Jul 2, 2010 at 2:54 PM, Philip Herron <[email protected]> wrote: > On 2 July 2010 22:51, Matthew Fleming <[email protected]> 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" > > Although maybe not helpful but have you considered using > automake/libtool instead makes it so much simpler in my opinion.
Instead of... ? Instead of this makefile? Thanks, matthew _______________________________________________ [email protected] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "[email protected]"

