Index: Makefile.inc1 =================================================================== RCS file: /home/ncvs/src/Makefile.inc1,v retrieving revision 1.410 diff -u -3 -r1.410 Makefile.inc1 --- Makefile.inc1 5 Mar 2004 18:16:28 -0000 1.410 +++ Makefile.inc1 5 Mar 2004 23:50:00 -0000 @@ -256,8 +256,8 @@ mkdir -p ${WORLDTMP}/legacy/${_dir} .endfor .for _dir in \ - lib usr/bin usr/include usr/lib/compat/aout usr/libdata/ldscripts \ - usr/libexec usr/share/misc usr/share/bsnmp/defs usr/share/bsnmp/mibs + lib lib32 usr/bin usr/include usr/lib/compat/aout usr/libdata/ldscripts \ + usr/lib32 usr/libexec usr/share/misc usr/share/bsnmp/defs usr/share/bsnmp/mibs mkdir -p ${WORLDTMP}/${_dir} .endfor mtree -deU -f ${.CURDIR}/etc/mtree/BSD.include.dist \ Index: etc/mtree/BSD.local.dist =================================================================== RCS file: /home/ncvs/src/etc/mtree/BSD.local.dist,v retrieving revision 1.107 diff -u -3 -r1.107 BSD.local.dist --- etc/mtree/BSD.local.dist 29 Jan 2004 16:17:25 -0000 1.107 +++ etc/mtree/BSD.local.dist 5 Mar 2004 23:50:04 -0000 @@ -19,6 +19,8 @@ .. lib .. + lib32 + .. libdata .. libexec Index: etc/mtree/BSD.root.dist =================================================================== RCS file: /home/ncvs/src/etc/mtree/BSD.root.dist,v retrieving revision 1.65 diff -u -3 -r1.65 BSD.root.dist --- etc/mtree/BSD.root.dist 26 Oct 2003 19:09:11 -0000 1.65 +++ etc/mtree/BSD.root.dist 5 Mar 2004 23:50:04 -0000 @@ -63,6 +63,8 @@ .. lib .. + lib32 + .. libexec .. mnt Index: etc/mtree/BSD.usr.dist =================================================================== RCS file: /home/ncvs/src/etc/mtree/BSD.usr.dist,v retrieving revision 1.292 diff -u -3 -r1.292 BSD.usr.dist --- etc/mtree/BSD.usr.dist 29 Jan 2004 16:17:25 -0000 1.292 +++ etc/mtree/BSD.usr.dist 5 Mar 2004 23:50:04 -0000 @@ -19,6 +19,8 @@ .. .. .. + lib32 + .. libdata doscmd fonts Index: etc/mtree/BSD.x11-4.dist =================================================================== RCS file: /home/ncvs/src/etc/mtree/BSD.x11-4.dist,v retrieving revision 1.23 diff -u -3 -r1.23 BSD.x11-4.dist --- etc/mtree/BSD.x11-4.dist 14 May 2003 07:23:54 -0000 1.23 +++ etc/mtree/BSD.x11-4.dist 5 Mar 2004 23:50:04 -0000 @@ -347,6 +347,8 @@ .. .. .. + lib32 + .. libdata pkgconfig .. Index: etc/mtree/BSD.x11.dist =================================================================== RCS file: /home/ncvs/src/etc/mtree/BSD.x11.dist,v retrieving revision 1.17 diff -u -3 -r1.17 BSD.x11.dist --- etc/mtree/BSD.x11.dist 22 Jan 2002 15:15:38 -0000 1.17 +++ etc/mtree/BSD.x11.dist 5 Mar 2004 23:50:04 -0000 @@ -191,6 +191,8 @@ modules .. .. + lib32 + .. libdata .. libexec Index: lib/Makefile =================================================================== RCS file: /home/ncvs/src/lib/Makefile,v retrieving revision 1.180 diff -u -3 -r1.180 Makefile --- lib/Makefile 2 Mar 2004 06:26:37 -0000 1.180 +++ lib/Makefile 5 Mar 2004 23:50:04 -0000 @@ -32,7 +32,7 @@ ${_libngatm} libopie libpam libpanel libpcap \ ${_libpthread} ${_libsdp} ${_libsm} ${_libsmb} ${_libsmdb} \ ${_libsmutil} libstand libtelnet ${_libthr} libufs libugidfw \ - ${_libusbhid} ${_libvgl} libwrap libxpg4 liby libz + ${_libusbhid} ${_libvgl} libwrap libxpg4 liby libz ${_libc32} .if exists(${.CURDIR}/csu/${MACHINE_ARCH}-elf) _csu=csu/${MACHINE_ARCH}-elf @@ -47,6 +47,11 @@ .if !defined(NOLIBC_R) _libc_r= libc_r .endif +.endif + +# build libc_pic.a for rtld-elf-32 on amd64 +.if ${MACHINE_ARCH} == "amd64" +_libc32= libc32 .endif .if !defined(NOATM) Index: lib/libc/Makefile =================================================================== RCS file: /home/ncvs/src/lib/libc/Makefile,v retrieving revision 1.50 diff -u -3 -r1.50 Makefile --- lib/libc/Makefile 19 Jan 2004 16:16:53 -0000 1.50 +++ lib/libc/Makefile 5 Mar 2004 23:50:04 -0000 @@ -10,11 +10,15 @@ LIB=c # If you bump SHLIB_MAJOR, remove the kluge from gen/gethostname.c. # If you bump SHLIB_MAJOR, see standards/55112. +.if !defined(${NOSHLIB}) SHLIB_MAJOR= 5 SHLIBDIR?= /lib +.endif WARNS?= 2 -CFLAGS+=-I${.CURDIR}/include -I${.CURDIR}/../../include -CFLAGS+=-I${.CURDIR}/${MACHINE_ARCH} +TARGET?=${MACHINE_ARCH} +LIBCSRC?=${.CURDIR} +CFLAGS+=-I${LIBCSRC}/include -I${LIBCSRC}/../../include +CFLAGS+=-I${LIBCSRC}/${TARGET} CLEANFILES+=tags INSTALL_PIC_ARCHIVE= yes PRECIOUSLIB= yes @@ -30,36 +34,36 @@ # # If there is a machine dependent makefile, use it: # -.if exists(${.CURDIR}/${MACHINE_ARCH}/Makefile.inc) -.include "${.CURDIR}/${MACHINE_ARCH}/Makefile.inc" +.if exists(${LIBCSRC}/${TARGET}/Makefile.inc) +.include "${LIBCSRC}/${TARGET}/Makefile.inc" .endif -.include "${.CURDIR}/db/Makefile.inc" -.include "${.CURDIR}/compat-43/Makefile.inc" -.include "${.CURDIR}/gdtoa/Makefile.inc" -.include "${.CURDIR}/gen/Makefile.inc" -.if ${MACHINE_ARCH} != "powerpc" -.include "${.CURDIR}/gmon/Makefile.inc" -.endif -.include "${.CURDIR}/locale/Makefile.inc" -.include "${.CURDIR}/net/Makefile.inc" -.include "${.CURDIR}/nls/Makefile.inc" -.include "${.CURDIR}/posix1e/Makefile.inc" +.include "${LIBCSRC}/db/Makefile.inc" +.include "${LIBCSRC}/compat-43/Makefile.inc" +.include "${LIBCSRC}/gdtoa/Makefile.inc" +.include "${LIBCSRC}/gen/Makefile.inc" +.if ${TARGET} != "powerpc" +.include "${LIBCSRC}/gmon/Makefile.inc" +.endif +.include "${LIBCSRC}/locale/Makefile.inc" +.include "${LIBCSRC}/net/Makefile.inc" +.include "${LIBCSRC}/nls/Makefile.inc" +.include "${LIBCSRC}/posix1e/Makefile.inc" .if !defined(NO_QUAD) -.include "${.CURDIR}/quad/Makefile.inc" +.include "${LIBCSRC}/quad/Makefile.inc" .endif -.include "${.CURDIR}/regex/Makefile.inc" -.include "${.CURDIR}/stdio/Makefile.inc" -.include "${.CURDIR}/stdlib/Makefile.inc" -.include "${.CURDIR}/stdtime/Makefile.inc" -.include "${.CURDIR}/string/Makefile.inc" -.include "${.CURDIR}/sys/Makefile.inc" -.include "${.CURDIR}/rpc/Makefile.inc" -.include "${.CURDIR}/uuid/Makefile.inc" -.include "${.CURDIR}/xdr/Makefile.inc" +.include "${LIBCSRC}/regex/Makefile.inc" +.include "${LIBCSRC}/stdio/Makefile.inc" +.include "${LIBCSRC}/stdlib/Makefile.inc" +.include "${LIBCSRC}/stdtime/Makefile.inc" +.include "${LIBCSRC}/string/Makefile.inc" +.include "${LIBCSRC}/sys/Makefile.inc" +.include "${LIBCSRC}/rpc/Makefile.inc" +.include "${LIBCSRC}/uuid/Makefile.inc" +.include "${LIBCSRC}/xdr/Makefile.inc" .if !defined(NO_YP_LIBC) CFLAGS+= -DYP -.include "${.CURDIR}/yp/Makefile.inc" +.include "${LIBCSRC}/yp/Makefile.inc" .endif .if !defined(NO_HESIOD_LIBC) CFLAGS+= -DHESIOD @@ -86,14 +90,14 @@ KSRCS= bcmp.c ffs.c ffsl.c fls.c flsl.c index.c mcount.c rindex.c \ strcat.c strcmp.c strcpy.c strlen.c strncpy.c -libkern: libkern.gen libkern.${MACHINE_ARCH} +libkern: libkern.gen libkern.${TARGET} libkern.gen: ${KQSRCS} ${KSRCS} - cp -p ${.CURDIR}/quad/quad.h ${.ALLSRC} ${DESTDIR}/sys/libkern + cp -p ${LIBCSRC}/quad/quad.h ${.ALLSRC} ${DESTDIR}/sys/libkern -libkern.${MACHINE_ARCH}:: ${KMSRCS} +libkern.${TARGET}:: ${KMSRCS} .if defined(KMSRCS) && !empty(KMSRCS) - cp -p ${.ALLSRC} ${DESTDIR}/sys/libkern/${MACHINE_ARCH} + cp -p ${.ALLSRC} ${DESTDIR}/sys/libkern/${TARGET} .endif .include Index: lib/libc/alpha/gen/Makefile.inc =================================================================== RCS file: /home/ncvs/src/lib/libc/alpha/gen/Makefile.inc,v retrieving revision 1.12 diff -u -3 -r1.12 Makefile.inc --- lib/libc/alpha/gen/Makefile.inc 9 Aug 2003 05:37:54 -0000 1.12 +++ lib/libc/alpha/gen/Makefile.inc 5 Mar 2004 23:50:04 -0000 @@ -14,34 +14,34 @@ CLEANFILES+= __remqu.S __remq.S __remlu.S __reml.S -__divqu.S: ${.CURDIR}/alpha/gen/divrem.m4 +__divqu.S: ${LIBCSRC}/alpha/gen/divrem.m4 m4 -DNAME=__divqu -DOP=div -DS=false -DWORDSIZE=64 \ ${.ALLSRC} > ${.TARGET} -__divq.S: ${.CURDIR}/alpha/gen/divrem.m4 +__divq.S: ${LIBCSRC}/alpha/gen/divrem.m4 m4 -DNAME=__divq -DOP=div -DS=true -DWORDSIZE=64 \ ${.ALLSRC} > ${.TARGET} -__divlu.S: ${.CURDIR}/alpha/gen/divrem.m4 +__divlu.S: ${LIBCSRC}/alpha/gen/divrem.m4 m4 -DNAME=__divlu -DOP=div -DS=false -DWORDSIZE=32 \ ${.ALLSRC} > ${.TARGET} -__divl.S: ${.CURDIR}/alpha/gen/divrem.m4 +__divl.S: ${LIBCSRC}/alpha/gen/divrem.m4 m4 -DNAME=__divl -DOP=div -DS=true -DWORDSIZE=32 \ ${.ALLSRC} > ${.TARGET} -__remqu.S: ${.CURDIR}/alpha/gen/divrem.m4 +__remqu.S: ${LIBCSRC}/alpha/gen/divrem.m4 m4 -DNAME=__remqu -DOP=rem -DS=false -DWORDSIZE=64 \ ${.ALLSRC} > ${.TARGET} -__remq.S: ${.CURDIR}/alpha/gen/divrem.m4 +__remq.S: ${LIBCSRC}/alpha/gen/divrem.m4 m4 -DNAME=__remq -DOP=rem -DS=true -DWORDSIZE=64 \ ${.ALLSRC} > ${.TARGET} -__remlu.S: ${.CURDIR}/alpha/gen/divrem.m4 +__remlu.S: ${LIBCSRC}/alpha/gen/divrem.m4 m4 -DNAME=__remlu -DOP=rem -DS=false -DWORDSIZE=32 \ ${.ALLSRC} > ${.TARGET} -__reml.S: ${.CURDIR}/alpha/gen/divrem.m4 +__reml.S: ${LIBCSRC}/alpha/gen/divrem.m4 m4 -DNAME=__reml -DOP=rem -DS=true -DWORDSIZE=32 \ ${.ALLSRC} > ${.TARGET} Index: lib/libc/compat-43/Makefile.inc =================================================================== RCS file: /home/ncvs/src/lib/libc/compat-43/Makefile.inc,v retrieving revision 1.12 diff -u -3 -r1.12 Makefile.inc --- lib/libc/compat-43/Makefile.inc 18 Nov 2002 09:50:54 -0000 1.12 +++ lib/libc/compat-43/Makefile.inc 5 Mar 2004 23:50:04 -0000 @@ -2,7 +2,7 @@ # $FreeBSD: src/lib/libc/compat-43/Makefile.inc,v 1.12 2002/11/18 09:50:54 ru Exp $ # compat-43 sources -.PATH: ${.CURDIR}/${MACHINE_ARCH}/compat-43 ${.CURDIR}/compat-43 +.PATH: ${LIBCSRC}/${TARGET}/compat-43 ${LIBCSRC}/compat-43 SRCS+= creat.c gethostid.c getwd.c killpg.c sethostid.c setpgrp.c \ setrgid.c setruid.c sigcompat.c Index: lib/libc/db/Makefile.inc =================================================================== RCS file: /home/ncvs/src/lib/libc/db/Makefile.inc,v retrieving revision 1.4 diff -u -3 -r1.4 Makefile.inc --- lib/libc/db/Makefile.inc 18 Nov 2002 09:50:54 -0000 1.4 +++ lib/libc/db/Makefile.inc 5 Mar 2004 23:50:04 -0000 @@ -3,9 +3,9 @@ # CFLAGS+=-D__DBINTERFACE_PRIVATE -.include "${.CURDIR}/db/btree/Makefile.inc" -.include "${.CURDIR}/db/db/Makefile.inc" -.include "${.CURDIR}/db/hash/Makefile.inc" -.include "${.CURDIR}/db/man/Makefile.inc" -.include "${.CURDIR}/db/mpool/Makefile.inc" -.include "${.CURDIR}/db/recno/Makefile.inc" +.include "${LIBCSRC}/db/btree/Makefile.inc" +.include "${LIBCSRC}/db/db/Makefile.inc" +.include "${LIBCSRC}/db/hash/Makefile.inc" +.include "${LIBCSRC}/db/man/Makefile.inc" +.include "${LIBCSRC}/db/mpool/Makefile.inc" +.include "${LIBCSRC}/db/recno/Makefile.inc" Index: lib/libc/db/btree/Makefile.inc =================================================================== RCS file: /home/ncvs/src/lib/libc/db/btree/Makefile.inc,v retrieving revision 1.4 diff -u -3 -r1.4 Makefile.inc --- lib/libc/db/btree/Makefile.inc 18 Nov 2002 09:50:54 -0000 1.4 +++ lib/libc/db/btree/Makefile.inc 5 Mar 2004 23:50:04 -0000 @@ -1,7 +1,7 @@ # from @(#)Makefile.inc 8.2 (Berkeley) 7/14/94 # $FreeBSD: src/lib/libc/db/btree/Makefile.inc,v 1.4 2002/11/18 09:50:54 ru Exp $ -.PATH: ${.CURDIR}/db/btree +.PATH: ${LIBCSRC}/db/btree SRCS+= bt_close.c bt_conv.c bt_debug.c bt_delete.c bt_get.c bt_open.c \ bt_overflow.c bt_page.c bt_put.c bt_search.c bt_seq.c bt_split.c \ Index: lib/libc/db/db/Makefile.inc =================================================================== RCS file: /home/ncvs/src/lib/libc/db/db/Makefile.inc,v retrieving revision 1.4 diff -u -3 -r1.4 Makefile.inc --- lib/libc/db/db/Makefile.inc 18 Nov 2002 09:50:54 -0000 1.4 +++ lib/libc/db/db/Makefile.inc 5 Mar 2004 23:50:04 -0000 @@ -1,6 +1,6 @@ # from @(#)Makefile.inc 8.1 (Berkeley) 6/4/93 # $FreeBSD: src/lib/libc/db/db/Makefile.inc,v 1.4 2002/11/18 09:50:54 ru Exp $ -.PATH: ${.CURDIR}/db/db +.PATH: ${LIBCSRC}/db/db SRCS+= db.c Index: lib/libc/db/hash/Makefile.inc =================================================================== RCS file: /home/ncvs/src/lib/libc/db/hash/Makefile.inc,v retrieving revision 1.5 diff -u -3 -r1.5 Makefile.inc --- lib/libc/db/hash/Makefile.inc 18 Nov 2002 09:50:54 -0000 1.5 +++ lib/libc/db/hash/Makefile.inc 5 Mar 2004 23:50:04 -0000 @@ -1,7 +1,7 @@ # from @(#)Makefile.inc 8.1 (Berkeley) 6/4/93 # $FreeBSD: src/lib/libc/db/hash/Makefile.inc,v 1.5 2002/11/18 09:50:54 ru Exp $ -.PATH: ${.CURDIR}/db/hash +.PATH: ${LIBCSRC}/db/hash SRCS+= hash.c hash_bigkey.c hash_buf.c hash_func.c hash_log2.c \ hash_page.c ndbm.c Index: lib/libc/db/man/Makefile.inc =================================================================== RCS file: /home/ncvs/src/lib/libc/db/man/Makefile.inc,v retrieving revision 1.11 diff -u -3 -r1.11 Makefile.inc --- lib/libc/db/man/Makefile.inc 18 Nov 2002 09:50:54 -0000 1.11 +++ lib/libc/db/man/Makefile.inc 5 Mar 2004 23:50:04 -0000 @@ -1,7 +1,7 @@ # from @(#)Makefile.inc 8.1 (Berkeley) 6/4/93 # $FreeBSD: src/lib/libc/db/man/Makefile.inc,v 1.11 2002/11/18 09:50:54 ru Exp $ -.PATH: ${.CURDIR}/db/man +.PATH: ${LIBCSRC}/db/man MAN+= btree.3 dbm.3 dbopen.3 hash.3 mpool.3 recno.3 Index: lib/libc/db/mpool/Makefile.inc =================================================================== RCS file: /home/ncvs/src/lib/libc/db/mpool/Makefile.inc,v retrieving revision 1.4 diff -u -3 -r1.4 Makefile.inc --- lib/libc/db/mpool/Makefile.inc 18 Nov 2002 09:50:55 -0000 1.4 +++ lib/libc/db/mpool/Makefile.inc 5 Mar 2004 23:50:04 -0000 @@ -1,6 +1,6 @@ # from @(#)Makefile.inc 8.1 (Berkeley) 6/4/93 # $FreeBSD: src/lib/libc/db/mpool/Makefile.inc,v 1.4 2002/11/18 09:50:55 ru Exp $ -.PATH: ${.CURDIR}/db/mpool +.PATH: ${LIBCSRC}/db/mpool SRCS+= mpool.c Index: lib/libc/db/recno/Makefile.inc =================================================================== RCS file: /home/ncvs/src/lib/libc/db/recno/Makefile.inc,v retrieving revision 1.4 diff -u -3 -r1.4 Makefile.inc --- lib/libc/db/recno/Makefile.inc 18 Nov 2002 09:50:55 -0000 1.4 +++ lib/libc/db/recno/Makefile.inc 5 Mar 2004 23:50:04 -0000 @@ -1,7 +1,7 @@ # from @(#)Makefile.inc 8.1 (Berkeley) 6/4/93 # $FreeBSD: src/lib/libc/db/recno/Makefile.inc,v 1.4 2002/11/18 09:50:55 ru Exp $ -.PATH: ${.CURDIR}/db/recno +.PATH: ${LIBCSRC}/db/recno SRCS+= rec_close.c rec_delete.c rec_get.c rec_open.c rec_put.c rec_search.c \ rec_seq.c rec_utils.c Index: lib/libc/gdtoa/Makefile.inc =================================================================== RCS file: /home/ncvs/src/lib/libc/gdtoa/Makefile.inc,v retrieving revision 1.6 diff -u -3 -r1.6 Makefile.inc --- lib/libc/gdtoa/Makefile.inc 18 Jan 2004 10:32:49 -0000 1.6 +++ lib/libc/gdtoa/Makefile.inc 5 Mar 2004 23:50:04 -0000 @@ -1,21 +1,21 @@ # $FreeBSD: src/lib/libc/gdtoa/Makefile.inc,v 1.6 2004/01/18 10:32:49 das Exp $ # netlib gdtoa sources -.PATH: ${.CURDIR}/gdtoa +.PATH: ${LIBCSRC}/gdtoa MISRCS+=_hdtoa.c _ldtoa.c glue.c GDTOASRCS=dmisc.c dtoa.c gdtoa.c gethex.c gmisc.c \ hd_init.c hexnan.c misc.c smisc.c \ strtoIg.c strtod.c strtodg.c strtof.c strtord.c sum.c ulp.c -.if exists(${.CURDIR}/${MACHINE_ARCH}/stdlib/gdtoa.mk) -.include "${.CURDIR}/${MACHINE_ARCH}/stdlib/gdtoa.mk" +.if exists(${LIBCSRC}/${TARGET}/stdlib/gdtoa.mk) +.include "${LIBCSRC}/${TARGET}/stdlib/gdtoa.mk" .endif -CFLAGS+=-I${.CURDIR}/../../contrib/gdtoa +CFLAGS+=-I${LIBCSRC}/../../contrib/gdtoa .for src in ${GDTOASRCS} MISRCS+=gdtoa_${src} CLEANFILES+=gdtoa_${src} gdtoa_${src}: - ln -sf ${.CURDIR}/../../contrib/gdtoa/${src} ${.TARGET} + ln -sf ${LIBCSRC}/../../contrib/gdtoa/${src} ${.TARGET} .endfor Index: lib/libc/gen/Makefile.inc =================================================================== RCS file: /home/ncvs/src/lib/libc/gen/Makefile.inc,v retrieving revision 1.109 diff -u -3 -r1.109 Makefile.inc --- lib/libc/gen/Makefile.inc 15 Jan 2004 17:27:28 -0000 1.109 +++ lib/libc/gen/Makefile.inc 5 Mar 2004 23:50:04 -0000 @@ -2,7 +2,7 @@ # $FreeBSD: src/lib/libc/gen/Makefile.inc,v 1.109 2004/01/15 17:27:28 ru Exp $ # machine-independent gen sources -.PATH: ${.CURDIR}/${MACHINE_ARCH}/gen ${.CURDIR}/gen +.PATH: ${LIBCSRC}/${TARGET}/gen ${LIBCSRC}/gen SRCS+= __xuname.c _pthread_stubs.c _rand48.c _spinlock_stub.c _thread_init.c \ alarm.c arc4random.c assert.c basename.c check_utility_compat.c \ @@ -33,8 +33,8 @@ valloc.c vis.c wait.c wait3.c waitpid.c wordexp.c # machine-dependent gen sources -.if exists(${.CURDIR}/${MACHINE_ARCH}/gen/Makefile.inc) -.include "${.CURDIR}/${MACHINE_ARCH}/gen/Makefile.inc" +.if exists(${LIBCSRC}/${TARGET}/gen/Makefile.inc) +.include "${LIBCSRC}/${TARGET}/gen/Makefile.inc" .endif MAN+= alarm.3 arc4random.3 \ Index: lib/libc/gmon/Makefile.inc =================================================================== RCS file: /home/ncvs/src/lib/libc/gmon/Makefile.inc,v retrieving revision 1.9 diff -u -3 -r1.9 Makefile.inc --- lib/libc/gmon/Makefile.inc 18 Nov 2002 09:50:55 -0000 1.9 +++ lib/libc/gmon/Makefile.inc 5 Mar 2004 23:50:04 -0000 @@ -2,7 +2,7 @@ # $FreeBSD: src/lib/libc/gmon/Makefile.inc,v 1.9 2002/11/18 09:50:55 ru Exp $ # gmon sources -.PATH: ${.CURDIR}/gmon +.PATH: ${LIBCSRC}/gmon SRCS+= gmon.c mcount.c Index: lib/libc/locale/Makefile.inc =================================================================== RCS file: /home/ncvs/src/lib/libc/locale/Makefile.inc,v retrieving revision 1.53 diff -u -3 -r1.53 Makefile.inc --- lib/libc/locale/Makefile.inc 7 Dec 2003 06:33:52 -0000 1.53 +++ lib/libc/locale/Makefile.inc 5 Mar 2004 23:50:04 -0000 @@ -2,7 +2,7 @@ # $FreeBSD: src/lib/libc/locale/Makefile.inc,v 1.53 2003/12/07 06:33:52 tjr Exp $ # locale sources -.PATH: ${.CURDIR}/${MACHINE_ARCH}/locale ${.CURDIR}/locale +.PATH: ${LIBCSRC}/${TARGET}/locale ${LIBCSRC}/locale SRCS+= big5.c btowc.c collate.c collcmp.c euc.c fix_grouping.c frune.c \ gb18030.c gb2312.c gbk.c isctype.c iswctype.c \ Index: lib/libc/net/Makefile.inc =================================================================== RCS file: /home/ncvs/src/lib/libc/net/Makefile.inc,v retrieving revision 1.50 diff -u -3 -r1.50 Makefile.inc --- lib/libc/net/Makefile.inc 14 Nov 2003 18:53:22 -0000 1.50 +++ lib/libc/net/Makefile.inc 5 Mar 2004 23:50:04 -0000 @@ -2,7 +2,7 @@ # $FreeBSD: src/lib/libc/net/Makefile.inc,v 1.50 2003/11/14 18:53:22 bms Exp $ # machine-independent net sources -.PATH: ${.CURDIR}/${MACHINE_ARCH}/net ${.CURDIR}/net +.PATH: ${LIBCSRC}/${TARGET}/net ${LIBCSRC}/net SRCS+= addr2ascii.c ascii2addr.c base64.c ether_addr.c getaddrinfo.c \ gethostbydns.c gethostbyht.c gethostbynis.c gethostnamadr.c \ @@ -35,8 +35,8 @@ sed -e '/YY_BUF_SIZE/s/16384/1024/' >${.TARGET} # machine-dependent net sources -.if exists(${.CURDIR}/${MACHINE_ARCH}/net/Makefile.inc) -.include "${.CURDIR}/${MACHINE_ARCH}/net/Makefile.inc" +.if exists(${LIBCSRC}/${TARGET}/net/Makefile.inc) +.include "${LIBCSRC}/${TARGET}/net/Makefile.inc" .endif MAN+= addr2ascii.3 byteorder.3 ethers.3 getaddrinfo.3 gethostbyname.3 \ Index: lib/libc/nls/Makefile.inc =================================================================== RCS file: /home/ncvs/src/lib/libc/nls/Makefile.inc,v retrieving revision 1.8 diff -u -3 -r1.8 Makefile.inc --- lib/libc/nls/Makefile.inc 18 Nov 2002 09:50:55 -0000 1.8 +++ lib/libc/nls/Makefile.inc 5 Mar 2004 23:50:04 -0000 @@ -1,7 +1,7 @@ # from $NetBSD: Makefile.inc,v 1.7 1995/02/27 13:06:20 cgd Exp $ # $FreeBSD: src/lib/libc/nls/Makefile.inc,v 1.8 2002/11/18 09:50:55 ru Exp $ -.PATH: ${.CURDIR}/nls +.PATH: ${LIBCSRC}/nls SRCS+= msgcat.c Index: lib/libc/posix1e/Makefile.inc =================================================================== RCS file: /home/ncvs/src/lib/libc/posix1e/Makefile.inc,v retrieving revision 1.15 diff -u -3 -r1.15 Makefile.inc --- lib/libc/posix1e/Makefile.inc 20 Apr 2003 03:18:44 -0000 1.15 +++ lib/libc/posix1e/Makefile.inc 5 Mar 2004 23:50:04 -0000 @@ -2,7 +2,7 @@ MAINTAINER= rwatson@FreeBSD.org -.PATH: ${.CURDIR}/posix1e +.PATH: ${LIBCSRC}/posix1e SRCS+= acl_calc_mask.c \ acl_copy.c \ Index: lib/libc/quad/Makefile.inc =================================================================== RCS file: /home/ncvs/src/lib/libc/quad/Makefile.inc,v retrieving revision 1.9 diff -u -3 -r1.9 Makefile.inc --- lib/libc/quad/Makefile.inc 18 Nov 2002 09:50:56 -0000 1.9 +++ lib/libc/quad/Makefile.inc 5 Mar 2004 23:50:04 -0000 @@ -2,9 +2,9 @@ # $FreeBSD: src/lib/libc/quad/Makefile.inc,v 1.9 2002/11/18 09:50:56 ru Exp $ # Quad support, if needed -.PATH: ${.CURDIR}/${MACHINE_ARCH}/quad ${.CURDIR}/quad +.PATH: ${LIBCSRC}/${TARGET}/quad ${LIBCSRC}/quad -.if ${MACHINE_ARCH} == "i386" +.if ${TARGET} == "i386" SRCS+= cmpdi2.c divdi3.c moddi3.c qdivrem.c ucmpdi2.c udivdi3.c umoddi3.c Index: lib/libc/regex/Makefile.inc =================================================================== RCS file: /home/ncvs/src/lib/libc/regex/Makefile.inc,v retrieving revision 1.7 diff -u -3 -r1.7 Makefile.inc --- lib/libc/regex/Makefile.inc 18 Nov 2002 09:50:56 -0000 1.7 +++ lib/libc/regex/Makefile.inc 5 Mar 2004 23:50:04 -0000 @@ -2,7 +2,7 @@ # $FreeBSD: src/lib/libc/regex/Makefile.inc,v 1.7 2002/11/18 09:50:56 ru Exp $ # regex sources -.PATH: ${.CURDIR}/regex +.PATH: ${LIBCSRC}/regex CFLAGS+=-DPOSIX_MISTAKE Index: lib/libc/regex/grot/Makefile =================================================================== RCS file: /home/ncvs/src/lib/libc/regex/grot/Makefile,v retrieving revision 1.2 diff -u -3 -r1.2 Makefile --- lib/libc/regex/grot/Makefile 10 Jul 2000 06:10:47 -0000 1.2 +++ lib/libc/regex/grot/Makefile 5 Mar 2004 23:50:04 -0000 @@ -5,7 +5,7 @@ # Do not take -DPOSIX_MISTAKE out. REGCFLAGS isn't important to you (it's # for my use in some special contexts). -PATHS= ${.CURDIR}/.. ${.CURDIR}/../../locale ${.CURDIR}/../../../../include +PATHS= ${LIBCSRC}/.. ${LIBCSRC}/../../locale ${LIBCSRC}/../../../../include .PATH: ${PATHS} CFLAGS+= -DPOSIX_MISTAKE -DREDEBUG $(REGCFLAGS) Index: lib/libc/rpc/Makefile.inc =================================================================== RCS file: /home/ncvs/src/lib/libc/rpc/Makefile.inc,v retrieving revision 1.26 diff -u -3 -r1.26 Makefile.inc --- lib/libc/rpc/Makefile.inc 11 Jan 2004 17:14:54 -0000 1.26 +++ lib/libc/rpc/Makefile.inc 5 Mar 2004 23:50:04 -0000 @@ -1,7 +1,7 @@ # @(#)Makefile 5.11 (Berkeley) 9/6/90 # $FreeBSD: src/lib/libc/rpc/Makefile.inc,v 1.26 2004/01/11 17:14:54 ru Exp $ -.PATH: ${.CURDIR}/rpc ${.CURDIR}/. +.PATH: ${LIBCSRC}/rpc ${LIBCSRC}/. SRCS+= auth_none.c auth_unix.c authunix_prot.c bindresvport.c clnt_bcast.c \ clnt_dg.c clnt_generic.c clnt_perror.c clnt_raw.c clnt_simple.c \ clnt_vc.c rpc_dtablesize.c getnetconfig.c getnetpath.c getrpcent.c \ @@ -26,7 +26,7 @@ SRCS+= crypt_clnt.c crypt_xdr.c crypt.h CFLAGS+= -DBROKEN_DES -DPORTMAP -DDES_BUILTIN -CFLAGS+= -I${.CURDIR}/rpc +CFLAGS+= -I${LIBCSRC}/rpc CLEANFILES+= crypt_clnt.c crypt_xdr.c crypt.h Index: lib/libc/sparc64/fpu/Makefile.inc =================================================================== RCS file: /home/ncvs/src/lib/libc/sparc64/fpu/Makefile.inc,v retrieving revision 1.5 diff -u -3 -r1.5 Makefile.inc --- lib/libc/sparc64/fpu/Makefile.inc 18 Nov 2002 09:50:56 -0000 1.5 +++ lib/libc/sparc64/fpu/Makefile.inc 5 Mar 2004 23:50:04 -0000 @@ -1,8 +1,8 @@ # $FreeBSD: src/lib/libc/sparc64/fpu/Makefile.inc,v 1.5 2002/11/18 09:50:56 ru Exp $ -.PATH: ${.CURDIR}/sparc64/fpu +.PATH: ${LIBCSRC}/sparc64/fpu -CFLAGS+= -I${.CURDIR}/sparc64/sys +CFLAGS+= -I${LIBCSRC}/sparc64/sys SRCS+= fpu.c fpu_add.c fpu_compare.c fpu_div.c fpu_explode.c fpu_implode.c \ fpu_mul.c fpu_qp.c fpu_reg.S fpu_sqrt.c fpu_subr.c Index: lib/libc/sparc64/sys/Makefile.inc =================================================================== RCS file: /home/ncvs/src/lib/libc/sparc64/sys/Makefile.inc,v retrieving revision 1.9 diff -u -3 -r1.9 Makefile.inc --- lib/libc/sparc64/sys/Makefile.inc 11 Aug 2003 07:14:07 -0000 1.9 +++ lib/libc/sparc64/sys/Makefile.inc 5 Mar 2004 23:50:04 -0000 @@ -10,7 +10,7 @@ __sparc_utrap_setup.c \ sigcode.S -CFLAGS+= -I${.CURDIR}/sparc64/fpu +CFLAGS+= -I${LIBCSRC}/sparc64/fpu MDASM+= brk.S cerror.S exect.S pipe.S ptrace.S sbrk.S setlogin.S sigaction.S Index: lib/libc/stdio/Makefile.inc =================================================================== RCS file: /home/ncvs/src/lib/libc/stdio/Makefile.inc,v retrieving revision 1.32 diff -u -3 -r1.32 Makefile.inc --- lib/libc/stdio/Makefile.inc 10 Jan 2003 06:22:28 -0000 1.32 +++ lib/libc/stdio/Makefile.inc 5 Mar 2004 23:50:04 -0000 @@ -2,7 +2,7 @@ # $FreeBSD: src/lib/libc/stdio/Makefile.inc,v 1.32 2003/01/10 06:22:28 tjr Exp $ # stdio sources -.PATH: ${.CURDIR}/stdio +.PATH: ${LIBCSRC}/stdio SRCS+= _flock_stub.c asprintf.c clrerr.c fclose.c fdopen.c feof.c ferror.c \ fflush.c fgetc.c fgetln.c fgetpos.c fgets.c fgetwc.c fgetws.c \ Index: lib/libc/stdlib/Makefile.inc =================================================================== RCS file: /home/ncvs/src/lib/libc/stdlib/Makefile.inc,v retrieving revision 1.47 diff -u -3 -r1.47 Makefile.inc --- lib/libc/stdlib/Makefile.inc 24 Feb 2004 08:07:26 -0000 1.47 +++ lib/libc/stdlib/Makefile.inc 5 Mar 2004 23:50:04 -0000 @@ -2,7 +2,7 @@ # $FreeBSD: src/lib/libc/stdlib/Makefile.inc,v 1.47 2004/02/24 08:07:26 ache Exp $ # machine-independent stdlib sources -.PATH: ${.CURDIR}/${MACHINE_ARCH}/stdlib ${.CURDIR}/stdlib +.PATH: ${LIBCSRC}/${TARGET}/stdlib ${LIBCSRC}/stdlib MISRCS+=_Exit.c abort.c abs.c atexit.c atof.c atoi.c atol.c atoll.c \ bsearch.c calloc.c div.c exit.c getenv.c getopt.c getopt_long.c \ @@ -14,8 +14,8 @@ system.c tdelete.c tfind.c tsearch.c twalk.c # machine-dependent stdlib sources -.if exists(${.CURDIR}/${MACHINE_ARCH}/stdlib/Makefile.inc) -.include "${.CURDIR}/${MACHINE_ARCH}/stdlib/Makefile.inc" +.if exists(${LIBCSRC}/${TARGET}/stdlib/Makefile.inc) +.include "${LIBCSRC}/${TARGET}/stdlib/Makefile.inc" .endif MAN+= abort.3 abs.3 alloca.3 atexit.3 atof.3 atoi.3 atol.3 bsearch.3 \ Index: lib/libc/stdtime/Makefile.inc =================================================================== RCS file: /home/ncvs/src/lib/libc/stdtime/Makefile.inc,v retrieving revision 1.14 diff -u -3 -r1.14 Makefile.inc --- lib/libc/stdtime/Makefile.inc 18 Nov 2002 09:50:56 -0000 1.14 +++ lib/libc/stdtime/Makefile.inc 5 Mar 2004 23:50:04 -0000 @@ -1,7 +1,7 @@ # Makefile.inc,v 1.2 1994/09/13 21:26:01 wollman Exp # $FreeBSD: src/lib/libc/stdtime/Makefile.inc,v 1.14 2002/11/18 09:50:56 ru Exp $ -.PATH: ${.CURDIR}/stdtime ${.CURDIR}/../locale +.PATH: ${LIBCSRC}/stdtime ${LIBCSRC}/../locale SRCS+= asctime.c difftime.c localtime.c strftime.c strptime.c timelocal.c \ time32.c Index: lib/libc/string/Makefile.inc =================================================================== RCS file: /home/ncvs/src/lib/libc/string/Makefile.inc,v retrieving revision 1.34 diff -u -3 -r1.34 Makefile.inc --- lib/libc/string/Makefile.inc 13 Jan 2004 16:05:47 -0000 1.34 +++ lib/libc/string/Makefile.inc 5 Mar 2004 23:50:04 -0000 @@ -1,9 +1,9 @@ # @(#)Makefile.inc 8.1 (Berkeley) 6/4/93 # $FreeBSD: src/lib/libc/string/Makefile.inc,v 1.34 2004/01/13 16:05:47 des Exp $ -.PATH: ${.CURDIR}/${MACHINE_ARCH}/string ${.CURDIR}/string +.PATH: ${LIBCSRC}/${TARGET}/string ${LIBCSRC}/string -CFLAGS+= -I${.CURDIR}/locale +CFLAGS+= -I${LIBCSRC}/locale # machine-independent string sources MISRCS+=bcmp.c bcopy.c bzero.c ffs.c ffsl.c fls.c flsl.c index.c memccpy.c \ @@ -22,8 +22,8 @@ # machine-dependent string sources -.if exists(${.CURDIR}/${MACHINE_ARCH}/string/Makefile.inc) -.include "${.CURDIR}/${MACHINE_ARCH}/string/Makefile.inc" +.if exists(${LIBCSRC}/${TARGET}/string/Makefile.inc) +.include "${LIBCSRC}/${TARGET}/string/Makefile.inc" .endif MAN+= bcmp.3 bcopy.3 bstring.3 bzero.3 ffs.3 index.3 memccpy.3 memchr.3 \ Index: lib/libc/sys/Makefile.inc =================================================================== RCS file: /home/ncvs/src/lib/libc/sys/Makefile.inc,v retrieving revision 1.109 diff -u -3 -r1.109 Makefile.inc --- lib/libc/sys/Makefile.inc 14 Jan 2004 21:22:10 -0000 1.109 +++ lib/libc/sys/Makefile.inc 5 Mar 2004 23:50:05 -0000 @@ -2,19 +2,19 @@ # $FreeBSD: src/lib/libc/sys/Makefile.inc,v 1.109 2004/01/14 21:22:10 ru Exp $ # sys sources -.PATH: ${.CURDIR}/${MACHINE_ARCH}/sys ${.CURDIR}/sys +.PATH: ${LIBCSRC}/${TARGET}/sys ${LIBCSRC}/sys # Include the generated makefile containing the *complete* list # of syscall names in MIASM. -.include "${.CURDIR}/../../sys/sys/syscall.mk" +.include "${LIBCSRC}/../../sys/sys/syscall.mk" # Include machine dependent definitions. # # MDASM names override the default syscall names in MIASM. # NOASM will prevent the default syscall code from being generated. # -.if exists(${.CURDIR}/${MACHINE_ARCH}/sys/Makefile.inc) -.include "${.CURDIR}/${MACHINE_ARCH}/sys/Makefile.inc" +.if exists(${LIBCSRC}/${TARGET}/sys/Makefile.inc) +.include "${LIBCSRC}/${TARGET}/sys/Makefile.inc" .endif # Sources common to both syscall interfaces: Index: lib/libc/uuid/Makefile.inc =================================================================== RCS file: /home/ncvs/src/lib/libc/uuid/Makefile.inc,v retrieving revision 1.3 diff -u -3 -r1.3 Makefile.inc --- lib/libc/uuid/Makefile.inc 18 Nov 2002 09:50:57 -0000 1.3 +++ lib/libc/uuid/Makefile.inc 5 Mar 2004 23:50:05 -0000 @@ -2,7 +2,7 @@ # DCE 1.1 UUID implementation sources -.PATH: ${.CURDIR}/uuid +.PATH: ${LIBCSRC}/uuid SRCS+= uuid_compare.c uuid_create.c uuid_create_nil.c uuid_equal.c \ uuid_from_string.c uuid_hash.c uuid_is_nil.c uuid_to_string.c Index: lib/libc/xdr/Makefile.inc =================================================================== RCS file: /home/ncvs/src/lib/libc/xdr/Makefile.inc,v retrieving revision 1.14 diff -u -3 -r1.14 Makefile.inc --- lib/libc/xdr/Makefile.inc 18 Nov 2002 09:50:57 -0000 1.14 +++ lib/libc/xdr/Makefile.inc 5 Mar 2004 23:50:05 -0000 @@ -1,7 +1,7 @@ # @(#)Makefile 5.11 (Berkeley) 9/6/90 # $FreeBSD: src/lib/libc/xdr/Makefile.inc,v 1.14 2002/11/18 09:50:57 ru Exp $ -.PATH: ${.CURDIR}/xdr ${.CURDIR}/. +.PATH: ${LIBCSRC}/xdr ${LIBCSRC}/. SRCS+= xdr.c xdr_array.c xdr_float.c xdr_mem.c \ xdr_rec.c xdr_reference.c xdr_stdio.c Index: lib/libc/yp/Makefile.inc =================================================================== RCS file: /home/ncvs/src/lib/libc/yp/Makefile.inc,v retrieving revision 1.9 diff -u -3 -r1.9 Makefile.inc --- lib/libc/yp/Makefile.inc 18 Nov 2002 09:50:57 -0000 1.9 +++ lib/libc/yp/Makefile.inc 5 Mar 2004 23:50:05 -0000 @@ -2,7 +2,7 @@ # $FreeBSD: src/lib/libc/yp/Makefile.inc,v 1.9 2002/11/18 09:50:57 ru Exp $ # yp sources -.PATH: ${.CURDIR}/yp +.PATH: ${LIBCSRC}/yp SRCS+= xdryp.c yp.h yp_xdr.c yplib.c CLEANFILES+= yp.h yp_xdr.c Index: lib/libc32/Makefile =================================================================== RCS file: lib/libc32/Makefile diff -N lib/libc32/Makefile --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ lib/libc32/Makefile 5 Mar 2004 23:50:05 -0000 @@ -0,0 +1,23 @@ +# $FreeBSD$ + +LIBCSRC=${.CURDIR}/../libc +TARGET= i386 +LIBDIR= /usr/lib32 +SHLIBDIR=/usr/lib32 +CFLAGS+=-m32 -I. -L${LIBDIR} -DCOMPAT_32BIT +LDFLAGS+=-m32 +NOMAN= compat only +STRIP= +BUILD_PIC_ONLY=y +NOINSTALLLIB=y + +beforedepend: machine + +machine: + ln -s ${.CURDIR}/../../sys/i386/include machine + +CLEANFILES+= machine + +.include "${.CURDIR}/../libc/Makefile" + +${OBJS}: machine Index: libexec/Makefile =================================================================== RCS file: /home/ncvs/src/libexec/Makefile,v retrieving revision 1.64 diff -u -3 -r1.64 Makefile --- libexec/Makefile 16 Jan 2004 15:23:19 -0000 1.64 +++ libexec/Makefile 5 Mar 2004 23:50:05 -0000 @@ -26,6 +26,7 @@ rpc.sprayd \ rshd \ ${_rtld-elf} \ + ${_rtld-elf32} \ save-entropy \ ${_smrsh} \ talkd \ @@ -40,6 +41,9 @@ .if !defined(NOPIC) _rtld-elf= rtld-elf +.if ${MACHINE_ARCH} == "amd64" +_rtld-elf32= rtld-elf32 +.endif .endif .if !defined(NO_SENDMAIL) Index: libexec/rtld-elf/Makefile =================================================================== RCS file: /home/ncvs/src/libexec/rtld-elf/Makefile,v retrieving revision 1.25 diff -u -3 -r1.25 Makefile --- libexec/rtld-elf/Makefile 13 Sep 2003 21:50:35 -0000 1.25 +++ libexec/rtld-elf/Makefile 5 Mar 2004 23:50:05 -0000 @@ -1,12 +1,14 @@ # $FreeBSD: src/libexec/rtld-elf/Makefile,v 1.25 2003/09/13 21:50:35 mdodd Exp $ -PROG= ld-elf.so.1 +PROG?= ld-elf.so.1 SRCS= rtld_start.S rtld.c rtld_lock.c map_object.c malloc.c \ xmalloc.c debug.c reloc.c libmap.c MAN= rtld.1 CSTD?= gnu99 +TARGET?= ${MACHINE_ARCH} +RTLDSRC?= ${.CURDIR} CFLAGS+= -Wall -DFREEBSD_ELF -DIN_RTLD -CFLAGS+= -I${.CURDIR}/${MACHINE_ARCH} -I${.CURDIR} +CFLAGS+= -I${RTLDSRC}/${TARGET} -I${RTLDSRC} LDFLAGS+= -nostdlib -e .rtld_start INSTALLFLAGS= -fschg -C -b BINDIR= /libexec @@ -14,8 +16,8 @@ MLINKS= rtld.1 ld-elf.so.1.1 \ rtld.1 ld.so.1 -.if exists(${.CURDIR}/${MACHINE_ARCH}/Makefile.inc) -.include "${.CURDIR}/${MACHINE_ARCH}/Makefile.inc" +.if exists(${RTLDSRC}/${TARGET}/Makefile.inc) +.include "${RTLDSRC}/${TARGET}/Makefile.inc" .endif # If LDSCRIPT is defined, we build the dynamic linker as an @@ -48,6 +50,6 @@ beforeinstall: -chflags noschg ${DESTDIR}/usr/libexec/${PROG} -.PATH: ${.CURDIR}/${MACHINE_ARCH} +.PATH: ${RTLDSRC} ${RTLDSRC}/${TARGET} .include Index: libexec/rtld-elf/debug.h =================================================================== RCS file: /home/ncvs/src/libexec/rtld-elf/debug.h,v retrieving revision 1.5 diff -u -3 -r1.5 debug.h --- libexec/rtld-elf/debug.h 26 Jul 2001 11:02:32 -0000 1.5 +++ libexec/rtld-elf/debug.h 5 Mar 2004 23:50:05 -0000 @@ -50,10 +50,17 @@ #define dbg(format, args...) ((void) 0) #endif +#ifndef COMPAT_32BIT +#define _MYNAME "ld-elf.so.1" +#else +#define _MYNAME "ld-elf32.so.1" +#endif + #define assert(cond) ((cond) ? (void) 0 : \ - (msg("ld-elf.so.1: assert failed: " __FILE__ ":" \ + (msg(_MYNAME ": assert failed: " __FILE__ ":" \ __XSTRING(__LINE__) "\n"), abort())) #define msg(s) write(STDOUT_FILENO, s, strlen(s)) -#define trace() msg("ld-elf.so.1: " __XSTRING(__LINE__) "\n") +#define trace() msg(_MYNAME ": " __XSTRING(__LINE__) "\n") + #endif /* DEBUG_H */ Index: libexec/rtld-elf/libmap.c =================================================================== RCS file: /home/ncvs/src/libexec/rtld-elf/libmap.c,v retrieving revision 1.10 diff -u -3 -r1.10 libmap.c --- libexec/rtld-elf/libmap.c 3 Feb 2004 18:53:40 -0000 1.10 +++ libexec/rtld-elf/libmap.c 5 Mar 2004 23:50:05 -0000 @@ -17,6 +17,11 @@ #define _PATH_LIBMAP_CONF "/etc/libmap.conf" #endif +#ifdef COMPAT_32BIT +#undef _PATH_LIBMAP_CONF +#define _PATH_LIBMAP_CONF "/etc/libmap32.conf" +#endif + TAILQ_HEAD(lm_list, lm); struct lm { char *f; @@ -211,6 +216,27 @@ return (NULL); } +#ifdef COMPAT_32BIT +char * +lm_findn (const char *p, const char *f, const int n) +{ + char pathbuf[64], *s, *t; + + if (n < sizeof(pathbuf) - 1) { + memcpy(pathbuf, f, n); + pathbuf[n] = '\0'; + s = pathbuf; + } else { + s = xmalloc(n + 1); + strcpy(s, f); + } + t = lm_find(p, s); + if (s != pathbuf) + free(s); + return (t); +} +#endif + static char * lml_find (struct lm_list *lmh, const char *f) { @@ -219,8 +245,7 @@ dbg("%s(%p, \"%s\")", __func__, lmh, f); TAILQ_FOREACH(lm, lmh, lm_link) - if ((strncmp(f, lm->f, strlen(lm->f)) == 0) && - (strlen(f) == strlen(lm->f))) + if (strcmp(f, lm->f) == 0) return (lm->t); return NULL; } @@ -233,8 +258,7 @@ dbg("%s(\"%s\")", __func__, n); TAILQ_FOREACH(lmp, &lmp_head, lmp_link) - if ((strncmp(n, lmp->p, strlen(lmp->p)) == 0) && - (strlen(n) == strlen(lmp->p))) + if (strcmp(n, lmp->p) == 0) return (&lmp->lml); return (NULL); } Index: libexec/rtld-elf/libmap.h =================================================================== RCS file: /home/ncvs/src/libexec/rtld-elf/libmap.h,v retrieving revision 1.2 diff -u -3 -r1.2 libmap.h --- libexec/rtld-elf/libmap.h 13 Sep 2003 21:43:08 -0000 1.2 +++ libexec/rtld-elf/libmap.h 5 Mar 2004 23:50:05 -0000 @@ -5,3 +5,6 @@ int lm_init (void); void lm_fini (void); char * lm_find (const char *, const char *); +#ifdef COMPAT_32BIT +char * lm_findn (const char *, const char *, const int); +#endif Index: libexec/rtld-elf/rtld.c =================================================================== RCS file: /home/ncvs/src/libexec/rtld-elf/rtld.c,v retrieving revision 1.93 diff -u -3 -r1.93 rtld.c --- libexec/rtld-elf/rtld.c 5 Mar 2004 08:10:18 -0000 1.93 +++ libexec/rtld-elf/rtld.c 5 Mar 2004 23:50:05 -0000 @@ -54,7 +54,11 @@ #include "rtld.h" #include "libmap.h" +#ifndef COMPAT_32BIT #define PATH_RTLD "/libexec/ld-elf.so.1" +#else +#define PATH_RTLD "/libexec/ld-elf32.so.1" +#endif /* Types. */ typedef void (*func_ptr_type)(); @@ -261,14 +265,14 @@ trust = !issetugid(); - ld_bind_now = getenv("LD_BIND_NOW"); + ld_bind_now = getenv(LD_ "BIND_NOW"); if (trust) { - ld_debug = getenv("LD_DEBUG"); - libmap_disable = getenv("LD_LIBMAP_DISABLE") != NULL; - ld_library_path = getenv("LD_LIBRARY_PATH"); - ld_preload = getenv("LD_PRELOAD"); + ld_debug = getenv(LD_ "DEBUG"); + libmap_disable = getenv(LD_ "LIBMAP_DISABLE") != NULL; + ld_library_path = getenv(LD_ "LIBRARY_PATH"); + ld_preload = getenv(LD_ "PRELOAD"); } - ld_tracing = getenv("LD_TRACE_LOADED_OBJECTS"); + ld_tracing = getenv(LD_ "TRACE_LOADED_OBJECTS"); if (ld_debug != NULL && *ld_debug != '\0') debug = 1; @@ -360,7 +364,7 @@ exit(0); } - if (getenv("LD_DUMP_REL_PRE") != NULL) { + if (getenv(LD_ "DUMP_REL_PRE") != NULL) { dump_relocations(obj_main); exit (0); } @@ -373,7 +377,7 @@ if (do_copy_relocations(obj_main) == -1) die(); - if (getenv("LD_DUMP_REL_POST") != NULL) { + if (getenv(LD_ "DUMP_REL_POST") != NULL) { dump_relocations(obj_main); exit (0); } @@ -1460,6 +1464,9 @@ static void * path_enumerate(const char *path, path_enum_proc callback, void *arg) { +#ifdef COMPAT_32BIT + const char *trans; +#endif if (path == NULL) return (NULL); @@ -1469,6 +1476,12 @@ char *res; len = strcspn(path, ":;"); +#ifdef COMPAT_32BIT + trans = lm_findn(NULL, path, len); + if (trans) + res = callback(trans, strlen(trans), arg); + else +#endif res = callback(path, len, arg); if (res != NULL) @@ -2259,16 +2272,16 @@ char *fmt1, *fmt2, *fmt, *main_local, *list_containers; int c; - if ((main_local = getenv("LD_TRACE_LOADED_OBJECTS_PROGNAME")) == NULL) + if ((main_local = getenv(LD_ "TRACE_LOADED_OBJECTS_PROGNAME")) == NULL) main_local = ""; - if ((fmt1 = getenv("LD_TRACE_LOADED_OBJECTS_FMT1")) == NULL) + if ((fmt1 = getenv(LD_ "TRACE_LOADED_OBJECTS_FMT1")) == NULL) fmt1 = "\t%o => %p (%x)\n"; - if ((fmt2 = getenv("LD_TRACE_LOADED_OBJECTS_FMT2")) == NULL) + if ((fmt2 = getenv(LD_ "TRACE_LOADED_OBJECTS_FMT2")) == NULL) fmt2 = "\t%o (%x)\n"; - list_containers = getenv("LD_TRACE_LOADED_OBJECTS_ALL"); + list_containers = getenv(LD_ "TRACE_LOADED_OBJECTS_ALL"); for (; obj; obj = obj->next) { Needed_Entry *needed; Index: libexec/rtld-elf/rtld.h =================================================================== RCS file: /home/ncvs/src/libexec/rtld-elf/rtld.h,v retrieving revision 1.32 diff -u -3 -r1.32 rtld.h --- libexec/rtld-elf/rtld.h 17 Aug 2003 07:55:17 -0000 1.32 +++ libexec/rtld-elf/rtld.h 5 Mar 2004 23:50:05 -0000 @@ -39,8 +39,20 @@ #include "rtld_lock.h" #include "rtld_machdep.h" +#ifdef COMPAT_32BIT +#undef STANDARD_LIBRARY_PATH +#undef _PATH_ELF_HINTS +#define _PATH_ELF_HINTS "/var/run/ld-elf32.so.hints" +/* For running 32 bit binaries */ +#define STANDARD_LIBRARY_PATH "/lib32:/usr/lib32" +#define LD_ "LD_32_" +#endif + #ifndef STANDARD_LIBRARY_PATH #define STANDARD_LIBRARY_PATH "/lib:/usr/lib" +#endif +#ifndef LD_ +#define LD_ "LD_" #endif #define NEW(type) ((type *) xmalloc(sizeof(type))) Index: libexec/rtld-elf32/Makefile =================================================================== RCS file: libexec/rtld-elf32/Makefile diff -N libexec/rtld-elf32/Makefile --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ libexec/rtld-elf32/Makefile 5 Mar 2004 23:50:05 -0000 @@ -0,0 +1,24 @@ + +PROG= ld-elf-32.so.1 +RTLDSRC=${.CURDIR}/../rtld-elf +TARGET= i386 +LIBDIR= /usr/lib32 +.if exists(${.OBJDIR}/../../lib/libc32) +LIBC= ${.OBJDIR}/../../lib/libc32/libc_pic.a +.else +LIBC= ${.CURDIR}/../../lib/libc32/libc_pic.a +.endif +#LIBC= ${DESTDIR}${LIBDIR}/libc_pic.a +CFLAGS+=-m32 -I. -L${LIBDIR} -DCOMPAT_32BIT +NOMAN= compat only + +beforedepend: machine + +machine: + ln -s ${.CURDIR}/../../sys/i386/include machine + +CLEANFILES+= machine + +.include "${.CURDIR}/../rtld-elf/Makefile" + +${OBJS}: machine Index: share/mk/bsd.lib.mk =================================================================== RCS file: /home/ncvs/src/share/mk/bsd.lib.mk,v retrieving revision 1.156 diff -u -3 -r1.156 bsd.lib.mk --- share/mk/bsd.lib.mk 27 Jan 2004 23:22:15 -0000 1.156 +++ share/mk/bsd.lib.mk 5 Mar 2004 23:50:06 -0000 @@ -21,6 +21,12 @@ SONAME?= ${SHLIB_NAME} .endif +.if defined(BUILD_PIC_ONLY) +.undef SHLIB_NAME +.undef SHLIB_LINK +.undef SONAME +.endif + .if defined(CRUNCH_CFLAGS) CFLAGS+= ${CRUNCH_CFLAGS} .endif @@ -94,7 +100,7 @@ OBJS+= ${SRCS:N*.h:R:S/$/.o/} .endif -.if defined(LIB) && !empty(LIB) +.if defined(LIB) && !empty(LIB) && !defined(BUILD_PIC_ONLY) _LIBS= lib${LIB}.a lib${LIB}.a: ${OBJS} ${STATICOBJS}