Major GCC surgery. Move most compiler-specific files into named
authorMatthew Dillon <dillon@dragonflybsd.org>
Fri, 16 Jan 2004 07:45:22 +0000 (07:45 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Fri, 16 Jan 2004 07:45:22 +0000 (07:45 +0000)
subdirectories and do a major overhaul of the front-end binaries in /usr/bin.

    /usr/libdata/gcc -> /usr/libdata/gcc2
    /usr/libdata/ldscripts -> /usr/libdata/gcc2/ldscripts
    /usr/libexec/{all_gcc_bins} -> /usr/libexec/gcc2/*
    /usr/libexec/{elf,aout}/* -> /usr/libexec/gcc2/{elf,aout}/*

OBJFORMAT_PATH has been changed from a full path to a base path, because
the objformat binary (hardlinked to most compiler related binaries in
/usr/bin) must now interpret the command name and use one of two different
paths to find the actual binary.  Previously certain gcc binaries, such as
'cc' and 'cpp', were directly installed in /usr/bin.  That is no longer the
case.

Objformat now supports the GCCVER environment variable for vectoring the
compiler version.  This will be used to support gcc3 and other compilers.

39 files changed:
Makefile.inc1
contrib/gcc/gcc.c
etc/mtree/BSD.usr.dist
etc/rc.d/ldconfig
gnu/lib/Makefile
gnu/lib/gcc2/Makefile [copied from gnu/lib/Makefile with 60% similarity]
gnu/lib/gcc2/Makefile.inc [new file with mode: 0644]
gnu/lib/gcc2/csu/Makefile [new file with mode: 0644]
gnu/lib/gcc2/libg++/Makefile [moved from gnu/lib/libg++/Makefile with 93% similarity]
gnu/lib/gcc2/libg++/doc/Makefile [moved from gnu/lib/libg++/doc/Makefile with 64% similarity]
gnu/lib/gcc2/libgcc/Makefile [moved from gnu/lib/libgcc/Makefile with 97% similarity]
gnu/lib/gcc2/libgcc_r/Makefile [moved from gnu/lib/libgcc_r/Makefile with 69% similarity]
gnu/lib/gcc2/libobjc/Makefile [moved from gnu/lib/libobjc/Makefile with 88% similarity]
gnu/lib/gcc2/libstdc++/Makefile [moved from gnu/lib/libstdc++/Makefile with 97% similarity]
gnu/lib/gcc2/libstdc++/_G_config.h [moved from gnu/lib/libstdc++/_G_config.h with 94% similarity]
gnu/lib/gcc2/libstdc++/doc/Makefile [moved from gnu/lib/libstdc++/doc/Makefile with 63% similarity]
gnu/usr.bin/binutils/Makefile.inc
gnu/usr.bin/binutils/gdb/i386/kvm-fbsd.c
gnu/usr.bin/binutils/ld/Makefile
gnu/usr.bin/cc/Makefile.inc
gnu/usr.bin/cc/c++/Makefile
gnu/usr.bin/cc/c++filt/Makefile
gnu/usr.bin/cc/cc/Makefile
gnu/usr.bin/cc/cc1/Makefile
gnu/usr.bin/cc/cc1obj/Makefile
gnu/usr.bin/cc/cc1plus/Makefile
gnu/usr.bin/cc/cc_tools/dragonfly-native.h
gnu/usr.bin/cc/cccp/Makefile
gnu/usr.bin/cc/cpp/Makefile
gnu/usr.bin/cc/f77/Makefile
gnu/usr.bin/cc/f771/Makefile
share/mk/bsd.lib.mk
share/mk/bsd.libnames.mk
share/mk/bsd.own.mk
usr.bin/kdump/Makefile
usr.bin/objformat/Makefile
usr.bin/objformat/objformat.c
usr.bin/rpcgen/rpc_main.c
usr.bin/truss/Makefile

index 5b03238..163ae96 100644 (file)
@@ -1,6 +1,6 @@
 #
 # $FreeBSD: src/Makefile.inc1,v 1.141.2.62 2003/04/06 19:54:00 dwmalone Exp $
-# $DragonFly: src/Makefile.inc1,v 1.12 2004/01/14 03:55:36 drhodus Exp $
+# $DragonFly: src/Makefile.inc1,v 1.13 2004/01/16 07:45:15 dillon Exp $
 #
 # Make command line options:
 #      -DMAKE_KERBEROS5 to build Kerberos5
@@ -148,7 +148,6 @@ WORLDTMP=   ${OBJTREE}${.CURDIR}/${MACHINE_ARCH}
 # /usr/games added for fortune which depend on strfile
 STRICTTMPPATH= ${WORLDTMP}/usr/sbin:${WORLDTMP}/usr/bin:${WORLDTMP}/usr/games
 TMPPATH=       ${STRICTTMPPATH}:${PATH}
-OBJFORMAT_PATH?=       /usr/libexec
 
 TMPDIR?=       /tmp
 TMPPID!=       echo $$$$
@@ -179,7 +178,7 @@ INSTALLTMP= ${TMPDIR}/install.${TMPPID}
 CROSSENV=      MAKEOBJDIRPREFIX=${OBJTREE} \
                MACHINE_ARCH=${TARGET_ARCH} \
                MACHINE=${TARGET} \
-               OBJFORMAT_PATH=${WORLDTMP}/usr/libexec \
+               OBJFORMAT_PATH=${WORLDTMP} \
                PERL5LIB=${WORLDTMP}/usr/libdata/perl/5.00503 \
                GROFF_BIN_PATH=${WORLDTMP}/usr/bin \
                GROFF_FONT_PATH=${WORLDTMP}/usr/share/groff_font \
@@ -216,10 +215,16 @@ IMAKE=            ${IMAKEENV} ${MAKE} -f Makefile.inc1
 
 # kernel stage
 KMAKEENV=      ${WMAKEENV} \
-               OBJFORMAT_PATH=${WORLDTMP}/usr/libexec:${OBJFORMAT_PATH}
-
-USRDIRS=       usr/bin usr/lib/compat/aout usr/games usr/libdata/ldscripts \
-               usr/libexec/${OBJFORMAT} usr/sbin usr/share/misc \
+               OBJFORMAT_PATH=${WORLDTMP}:${OBJFORMAT_PATH}
+
+USRDIRS=       usr/bin usr/bin/gcc2 usr/bin/gcc3 \
+               usr/lib/gcc2 usr/lib/gcc3 \
+               usr/lib/compat/aout usr/games \
+               usr/libdata/gcc2 usr/libdata/gcc2/ldscripts \
+               usr/libdata/gcc3 usr/libdata/gcc3/ldscripts \
+               usr/libexec/gcc2 usr/libexec/gcc3 \
+               usr/libexec/gcc2/${OBJFORMAT} usr/libexec/gcc3/${OBJFORMAT} \
+               usr/sbin usr/share/misc \
                usr/share/dict \
                usr/share/groff_font/devX100 \
                usr/share/groff_font/devX100-12 \
@@ -682,7 +687,7 @@ libraries:
 # gnu/lib/csu, gnu/lib/libgcc and lib/csu must be built before all
 # shared libraries for ELF.
 #
-_startup_libs= gnu/lib/csu gnu/lib/libgcc
+_startup_libs= gnu/lib/gcc2/csu gnu/lib/gcc2/libgcc
 .if exists(${.CURDIR}/lib/csu/${MACHINE_ARCH}-${OBJFORMAT})
 _startup_libs+=        lib/csu/${MACHINE_ARCH}-${OBJFORMAT}
 .else
index e33d9ec..e94983d 100644 (file)
@@ -23,7 +23,7 @@ This paragraph is here to try to keep Sun CC from dying.
 The number of chars here seems crucial!!!!  */
 
 /* $FreeBSD: src/contrib/gcc/gcc.c,v 1.17.2.9 2002/06/20 23:12:28 obrien Exp $ */
-/* $DragonFly: src/contrib/gcc/Attic/gcc.c,v 1.2 2003/06/17 04:24:01 dillon Exp $ */
+/* $DragonFly: src/contrib/gcc/Attic/gcc.c,v 1.3 2004/01/16 07:45:19 dillon Exp $ */
 
 /* This program is the user interface to the C compiler and possibly to
 other compilers.  It is used because compilation is a complicated procedure
@@ -1396,6 +1396,10 @@ static const char *standard_startfile_prefix = STANDARD_STARTFILE_PREFIX;
 static const char *standard_startfile_prefix_1 = "/lib/";
 static const char *standard_startfile_prefix_2 = "/usr/lib/";
 
+#ifndef GCCVER
+#error GCCVER not defined
+#endif
+
 #ifndef TOOLDIR_BASE_PREFIX
 #define TOOLDIR_BASE_PREFIX "/usr/local/"
 #endif
@@ -3127,15 +3131,17 @@ process_command (argc, argv)
   /* Use 2 as fourth arg meaning try just the machine as a suffix,
      as well as trying the machine and the version.  */
 #ifdef FREEBSD_NATIVE
+  add_prefix (&exec_prefixes, PREFIX"/libexec/gcc" GCCVER "/", "BINUTILS",
+             0, 0, NULL_PTR);
   switch (objformat)
     {
     case OBJFMT_AOUT:
       n_switches++;            /* add implied -maout */
-      add_prefix (&exec_prefixes, PREFIX"/libexec/aout/", "BINUTILS",
+      add_prefix (&exec_prefixes, PREFIX"/libexec/gcc" GCCVER "/aout/", "BINUTILS",
                  0, 0, NULL_PTR);
       break;
     case OBJFMT_ELF:
-      add_prefix (&exec_prefixes, PREFIX"/libexec/elf/", "BINUTILS",
+      add_prefix (&exec_prefixes, PREFIX"/libexec/gcc" GCCVER "/elf/", "BINUTILS",
                  0, 0, NULL_PTR);
       break;
     case OBJFMT_UNKNOWN:
index 1916ac3..d9733b5 100644 (file)
@@ -1,5 +1,5 @@
 # $FreeBSD: src/etc/mtree/BSD.usr.dist,v 1.188.2.40 2003/02/14 22:38:14 nectar Exp $
-# $DragonFly: src/etc/mtree/BSD.usr.dist,v 1.5 2003/10/13 08:43:56 dillon Exp $
+# $DragonFly: src/etc/mtree/BSD.usr.dist,v 1.6 2004/01/16 07:45:18 dillon Exp $
 #
 # Please see the file src/etc/mtree/README before making changes to this file.
 #
@@ -7,6 +7,10 @@
 /set type=dir uname=root gname=wheel mode=0755
 .
     bin
+       gcc2
+       ..
+       gcc3
+       ..
     ..
     games
         hide            gname=games mode=0550
     include
     ..
     lib
+       gcc2
+       ..
+       gcc3
+       ..
         aout
         ..
         compat
             fonts
             ..
         ..
-        gcc
-        ..
-        ldscripts
+        gcc2
+               ldscripts
+               ..
         ..
+       gcc3
+               ldscripts
+               ..
+       ..
         lint
         ..
         msdosfs
         ..
     ..
     libexec
-        aout
-        ..
-        elf
-        ..
+       gcc2
+           aout
+           ..
+           elf
+           ..
+       ..
+       gcc3
+           elf
+           ..
+       ..
         lpr
             ru
             ..
index 179d016..35f72c4 100644 (file)
@@ -2,7 +2,7 @@
 #
 # $NetBSD: ldconfig,v 1.5 2002/03/22 04:33:58 thorpej Exp $
 # $FreeBSD: src/etc/rc.d/ldconfig,v 1.7 2003/06/30 15:02:05 trhodes Exp $
-# $DragonFly: src/etc/rc.d/ldconfig,v 1.2 2003/11/19 10:32:45 eirikn Exp $
+# $DragonFly: src/etc/rc.d/ldconfig,v 1.3 2004/01/16 07:45:18 dillon Exp $
 #
 
 # PROVIDE: ldconfig
@@ -25,7 +25,7 @@ ldconfig_start()
                ldconfig=${ldconfig_command}
                checkyesno ldconfig_insecure && _ins="-i"
                if [ -x "${ldconfig_command}" ]; then
-                       _LDC=/usr/lib
+                       _LDC="/usr/lib /usr/lib/gcc*"
                        for i in ${ldconfig_paths} /etc/ld-elf.so.conf; do
                                if [ -r "${i}" ]; then
                                        _LDC="${_LDC} ${i}"
index 29c984e..9a704b7 100644 (file)
@@ -1,21 +1,7 @@
 # $FreeBSD: src/gnu/lib/Makefile,v 1.25.2.4 2001/01/06 23:16:53 obrien Exp $
-# $DragonFly: src/gnu/lib/Makefile,v 1.2 2003/06/17 04:25:43 dillon Exp $
+# $DragonFly: src/gnu/lib/Makefile,v 1.3 2004/01/16 07:45:19 dillon Exp $
 
-SUBDIR= csu libdialog libgcc libgmp libmp libregex libreadline
-
-.if ${OBJFORMAT} == aout
-.if !defined(NOLIBC_R)
-SUBDIR+= libgcc_r
-.endif
-.endif
-
-.if !defined(NO_CXX)
-SUBDIR+= libstdc++
-.endif
-
-.if !defined(NO_OBJC)
-SUBDIR+= libobjc
-.endif
+SUBDIR= libdialog gcc2 libgmp libmp libregex libreadline
 
 .if !defined(NO_FORTRAN)
 SUBDIR+= libg2c
similarity index 60%
copy from gnu/lib/Makefile
copy to gnu/lib/gcc2/Makefile
index 29c984e..f69dea8 100644 (file)
@@ -1,7 +1,7 @@
 # $FreeBSD: src/gnu/lib/Makefile,v 1.25.2.4 2001/01/06 23:16:53 obrien Exp $
-# $DragonFly: src/gnu/lib/Makefile,v 1.2 2003/06/17 04:25:43 dillon Exp $
+# $DragonFly: src/gnu/lib/gcc2/Attic/Makefile,v 1.1 2004/01/16 07:45:19 dillon Exp $
 
-SUBDIR= csu libdialog libgcc libgmp libmp libregex libreadline
+SUBDIR= csu libgcc
 
 .if ${OBJFORMAT} == aout
 .if !defined(NOLIBC_R)
@@ -17,8 +17,4 @@ SUBDIR+= libstdc++
 SUBDIR+= libobjc
 .endif
 
-.if !defined(NO_FORTRAN)
-SUBDIR+= libg2c
-.endif
-
 .include <bsd.subdir.mk>
diff --git a/gnu/lib/gcc2/Makefile.inc b/gnu/lib/gcc2/Makefile.inc
new file mode 100644 (file)
index 0000000..21d570e
--- /dev/null
@@ -0,0 +1,5 @@
+# $DragonFly: src/gnu/lib/gcc2/Attic/Makefile.inc,v 1.1 2004/01/16 07:45:19 dillon Exp $
+#
+
+USEGNUDIR=YES
+GCCVER=2
diff --git a/gnu/lib/gcc2/csu/Makefile b/gnu/lib/gcc2/csu/Makefile
new file mode 100644 (file)
index 0000000..0335e38
--- /dev/null
@@ -0,0 +1,75 @@
+# $FreeBSD: src/gnu/lib/csu/Makefile,v 1.1.2.8 2002/08/07 16:31:43 ru Exp $
+# $DragonFly: src/gnu/lib/gcc2/csu/Attic/Makefile,v 1.1 2004/01/16 07:45:19 dillon Exp $
+
+GCCDIR=        ${.CURDIR}/../../../../contrib/gcc
+
+.if ${MACHINE_ARCH} == "alpha"
+.PATH: ${GCCDIR}/config/alpha
+SRCS=          crtbegin.s crtend.s
+UGLYHACK=      -x assembler
+.else
+.PATH: ${GCCDIR}
+SRCS=          crtstuff.c tm.h
+.endif
+
+OBJS=          crtbegin.o crtend.o
+SOBJS=         crtbegin.So crtend.So
+CFLAGS+=       -I${GCCDIR}/config -I. -DIN_GCC \
+               -finhibit-size-directive -fno-inline-functions \
+               -fno-exceptions -fno-omit-frame-pointer
+CLEANFILES+=   tm.h
+
+CRTS_CFLAGS=   -DCRTSTUFFS_O ${PICFLAG}
+
+all: ${OBJS} ${SOBJS}
+
+CLEANFILES+=   ${OBJS} ${SOBJS}
+
+.if ${MACHINE_ARCH} == "alpha"
+crtbegin.o crtbegin.So:        crtbegin.s
+crtend.o crtend.So:    crtend.s
+.for PART in begin end
+CLEANFILES+=   crt${PART}.s
+crt${PART}.s:  crt${PART}.asm
+       ln -sf ${.ALLSRC} ${.TARGET}
+.endfor
+.else
+crtbegin.o crtbegin.So crtend.o crtend.So: ${SRCS}
+.endif
+
+crtbegin.o:
+       ${CC} ${CFLAGS} -g0 -DCRT_BEGIN \
+               -c -o ${.TARGET} ${UGLYHACK} ${.ALLSRC:N*.h}
+
+crtbegin.So:
+       ${CC} ${CFLAGS} -g0 -DCRT_BEGIN ${CRTS_CFLAGS} \
+               -c -o ${.TARGET} ${UGLYHACK} ${.ALLSRC:N*.h}
+
+crtend.o:
+       ${CC} ${CFLAGS} -g0 -DCRT_END \
+               -c -o ${.TARGET} ${UGLYHACK} ${.ALLSRC:N*.h}
+
+crtend.So:
+       ${CC} ${CFLAGS} -g0 -DCRT_END ${CRTS_CFLAGS} \
+               -c -o ${.TARGET} ${UGLYHACK} ${.ALLSRC:N*.h}
+
+CLEANFILES+=   tm.h
+#      KEEP THIS IN SYNC with src/gnu/usr.bin/cc/cc_tools/Makefile !!
+tm.h:
+       echo '#include "${MACHINE_ARCH}/${MACHINE_ARCH}.h"'     > ${.TARGET}
+.if ${MACHINE_ARCH} == "i386"
+       echo '#include "${MACHINE_ARCH}/att.h"'                 >> ${.TARGET}
+.endif
+       echo '#include <dragonfly.h>'                           >> ${.TARGET}
+       echo '#include "${MACHINE_ARCH}/dragonfly.h"'           >> ${.TARGET}
+.if ${MACHINE_ARCH} == "i386"
+       echo '#include "${MACHINE_ARCH}/perform.h"'             >> ${.TARGET}
+.endif
+
+realinstall:
+.for file in ${OBJS} ${SOBJS}
+       ${INSTALL} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
+           ${file} ${DESTDIR}${GCCLIBDIR}/${file:S/.So$/S.o/}
+.endfor
+
+.include <bsd.lib.mk>
similarity index 93%
rename from gnu/lib/libg++/Makefile
rename to gnu/lib/gcc2/libg++/Makefile
index e452e26..ef55cc6 100644 (file)
@@ -1,9 +1,9 @@
 #
 # $FreeBSD: src/gnu/lib/libg++/Makefile,v 1.22 1999/08/27 23:32:45 peter Exp $
-# $DragonFly: src/gnu/lib/libg++/Attic/Makefile,v 1.2 2003/06/17 04:25:44 dillon Exp $
+# $DragonFly: src/gnu/lib/gcc2/libg++/Attic/Makefile,v 1.1 2004/01/16 07:45:19 dillon Exp $
 #
 
-GPPDIR=        ${.CURDIR}/../../../contrib/libg++
+GPPDIR=        ${.CURDIR}/../../../../contrib/libg++
 
 .PATH: ${GPPDIR}/libiberty ${GPPDIR}/libio ${GPPDIR}/libg++/src ${GPPDIR}/librx
 
similarity index 64%
rename from gnu/lib/libg++/doc/Makefile
rename to gnu/lib/gcc2/libg++/doc/Makefile
index 5db2f12..4ad5e1e 100644 (file)
@@ -1,12 +1,12 @@
 # $FreeBSD: src/gnu/lib/libg++/doc/Makefile,v 1.5 1999/08/27 23:32:46 peter Exp $
-# $DragonFly: src/gnu/lib/libg++/doc/Attic/Makefile,v 1.2 2003/06/17 04:25:44 dillon Exp $
+# $DragonFly: src/gnu/lib/gcc2/libg++/doc/Attic/Makefile,v 1.1 2004/01/16 07:45:19 dillon Exp $
 
 INFO = g++FAQ libg++ iostream
 INFOSECTION= "Gcc Documentation"
 INFOENTRY_g++FAQ= "* G++FAQ: (g++FAQ).         The GNU G++ FAQ."
 
-.PATH: ${.CURDIR}/../../../../contrib/libg++/libg++
-.PATH: ${.CURDIR}/../../../../contrib/libg++/libio
+.PATH: ${.CURDIR}/../../../../../contrib/libg++/libg++
+.PATH: ${.CURDIR}/../../../../../contrib/libg++/libio
 
 # HACK ALERT!
 CLEANFILES+= lgpl.texinfo
similarity index 97%
rename from gnu/lib/libgcc/Makefile
rename to gnu/lib/gcc2/libgcc/Makefile
index ed69eb8..d839afd 100644 (file)
@@ -1,7 +1,7 @@
 # $FreeBSD: src/gnu/lib/libgcc/Makefile,v 1.31.2.2 2002/06/20 23:13:29 obrien Exp $
-# $DragonFly: src/gnu/lib/libgcc/Attic/Makefile,v 1.3 2003/11/19 00:51:36 dillon Exp $
+# $DragonFly: src/gnu/lib/gcc2/libgcc/Attic/Makefile,v 1.1 2004/01/16 07:45:19 dillon Exp $
 
-GCCDIR=        ${.CURDIR}/../../../contrib/gcc
+GCCDIR=        ${.CURDIR}/../../../../contrib/gcc
 
 .PATH: ${GCCDIR}/cp ${GCCDIR}
 
similarity index 69%
rename from gnu/lib/libgcc_r/Makefile
rename to gnu/lib/gcc2/libgcc_r/Makefile
index c26c2e8..9a48eb3 100644 (file)
@@ -1,5 +1,5 @@
 # $FreeBSD: src/gnu/lib/libgcc_r/Makefile,v 1.4.4.1 2000/11/01 01:20:37 jdp Exp $
-# $DragonFly: src/gnu/lib/libgcc_r/Attic/Makefile,v 1.2 2003/06/17 04:25:44 dillon Exp $
+# $DragonFly: src/gnu/lib/gcc2/libgcc_r/Attic/Makefile,v 1.1 2004/01/16 07:45:19 dillon Exp $
 
 LIB=   gcc_r
 CFLAGS+=-D_PTHREADS
similarity index 88%
rename from gnu/lib/libobjc/Makefile
rename to gnu/lib/gcc2/libobjc/Makefile
index 6136f1e..9030cbf 100644 (file)
@@ -1,8 +1,8 @@
 # $FreeBSD: src/gnu/lib/libobjc/Makefile,v 1.9.2.3 2002/07/22 14:21:45 ru Exp $
-# $DragonFly: src/gnu/lib/libobjc/Attic/Makefile,v 1.3 2003/11/19 01:53:16 dillon Exp $
+# $DragonFly: src/gnu/lib/gcc2/libobjc/Attic/Makefile,v 1.1 2004/01/16 07:45:20 dillon Exp $
 
-OBJCDIR=${.CURDIR}/../../../contrib/libobjc
-GCCDIR=        ${.CURDIR}/../../../contrib/gcc
+OBJCDIR=${.CURDIR}/../../../../contrib/libobjc
+GCCDIR=        ${.CURDIR}/../../../../contrib/gcc
 
 .PATH: ${OBJCDIR}/objc ${OBJCDIR}
 
similarity index 97%
rename from gnu/lib/libstdc++/Makefile
rename to gnu/lib/gcc2/libstdc++/Makefile
index 4676900..67e64af 100644 (file)
@@ -1,7 +1,7 @@
 # $FreeBSD: src/gnu/lib/libstdc++/Makefile,v 1.24.2.1 2001/11/21 18:55:27 obrien Exp $
-# $DragonFly: src/gnu/lib/libstdc++/Attic/Makefile,v 1.2 2003/06/17 04:25:44 dillon Exp $
+# $DragonFly: src/gnu/lib/gcc2/libstdc++/Attic/Makefile,v 1.1 2004/01/16 07:45:20 dillon Exp $
 
-SRCDIR=        ${.CURDIR}/../../../contrib/libstdc++
+SRCDIR=        ${.CURDIR}/../../../../contrib/libstdc++
 
 .PATH: ${SRCDIR} ${SRCDIR}/stl ${SRCDIR}/../libio
 
similarity index 94%
rename from gnu/lib/libstdc++/_G_config.h
rename to gnu/lib/gcc2/libstdc++/_G_config.h
index 26b5995..edcb10f 100644 (file)
@@ -1,5 +1,7 @@
-/* $FreeBSD: src/gnu/lib/libstdc++/_G_config.h,v 1.9 2000/01/25 12:23:13 obrien Exp $ */
-/* $DragonFly: src/gnu/lib/libstdc++/Attic/_G_config.h,v 1.2 2003/06/17 04:25:44 dillon Exp $ */
+/*
+ * $FreeBSD: src/gnu/lib/libstdc++/_G_config.h,v 1.9 2000/01/25 12:23:13 obrien Exp $
+ * $DragonFly: src/gnu/lib/gcc2/libstdc++/Attic/_G_config.h,v 1.1 2004/01/16 07:45:20 dillon Exp $
+ */
 
 /* XXX _G_VTABLE_LABEL_PREFIX is different between ELF and a.out */
 
similarity index 63%
rename from gnu/lib/libstdc++/doc/Makefile
rename to gnu/lib/gcc2/libstdc++/doc/Makefile
index 3d238da..f9c4921 100644 (file)
@@ -1,7 +1,7 @@
 # $FreeBSD: src/gnu/lib/libstdc++/doc/Makefile,v 1.5 2000/01/03 17:40:47 obrien Exp $
-# $DragonFly: src/gnu/lib/libstdc++/doc/Attic/Makefile,v 1.2 2003/06/17 04:25:44 dillon Exp $
+# $DragonFly: src/gnu/lib/gcc2/libstdc++/doc/Attic/Makefile,v 1.1 2004/01/16 07:45:20 dillon Exp $
 
-SRCDIR= ${.CURDIR}/../../../../contrib/libstdc++
+SRCDIR= ${.CURDIR}/../../../../../contrib/libstdc++
 
 .PATH: ${SRCDIR}/../libio
 
index 2bc5371..a104597 100644 (file)
@@ -1,6 +1,6 @@
 #
 # $FreeBSD: src/gnu/usr.bin/binutils/Makefile.inc,v 1.4.2.2 2002/09/01 23:39:12 obrien Exp $
-# $DragonFly: src/gnu/usr.bin/binutils/Attic/Makefile.inc,v 1.2 2003/06/17 04:25:44 dillon Exp $
+# $DragonFly: src/gnu/usr.bin/binutils/Attic/Makefile.inc,v 1.3 2004/01/16 07:45:20 dillon Exp $
 #
 
-BINDIR?=       /usr/libexec/elf
+BINDIR?=       /usr/libexec/gcc2/elf
index bc447ea..9767b90 100644 (file)
@@ -18,7 +18,7 @@ along with this program; if not, write to the Free Software
 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 /* $FreeBSD: src/gnu/usr.bin/binutils/gdb/i386/kvm-fbsd.c,v 1.17.4.3 2001/12/17 23:06:06 peter Exp $ */
-/* $DragonFly: src/gnu/usr.bin/binutils/gdb/i386/Attic/kvm-fbsd.c,v 1.4 2003/08/27 03:21:48 dillon Exp $ */
+/* $DragonFly: src/gnu/usr.bin/binutils/gdb/i386/Attic/kvm-fbsd.c,v 1.5 2004/01/16 07:45:20 dillon Exp $ */
 
 #define _KERNEL_STRUCTURES
 
@@ -222,6 +222,7 @@ set_proc_context (paddr)
     return (1);
 
   cur_proc = (struct proc *)paddr;
+  printf("CURPROC %08x\n", cur_proc);
 #ifdef notyet
   set_kernel_boundaries (cur_proc);
 #endif
@@ -377,7 +378,9 @@ kcore_detach (args, from_tty)
 /* We just get all the registers, so we don't use regno.  */
 /* ARGSUSED */
 
+#if 0
 #define PCB_ADDR(uptr) ((char *)uptr + UPAGES * PAGE_SIZE - sizeof(struct pcb))
+#endif
 
 static void
 get_kcore_registers (int regno)
@@ -393,6 +396,14 @@ get_kcore_registers (int regno)
        error ("cannot read cur_proc->p_thread at %p", cur_proc);
     if (kvread(&td->td_pcb, &pcb))
        error ("cannot read cur_proc->p_thread->td_pcb at %p", td);
+    /*
+     * Hack, gdb using newer structures need to deal with older elements
+     * XXX look up the offset in the debug info ?
+     */
+    if (pcb == (void *)0xff800000) {
+       if (kvread(&td->td_pcb - 1, &pcb))
+           error ("cannot read cur_proc->p_thread->td_pcb at %p", td);
+    }
     if (read_pcb(core_kd, (CORE_ADDR)pcb) < 0)
        error ("cannot read pcb at %p", pcb);
 }
@@ -944,7 +955,7 @@ read_pcb (int fd, CORE_ADDR pcbaddr)
        error ("cannot read pcb at %x\n", pcbaddr);
        return (-1);
     }
-    printf("PCB EIP=%08x ESP=%08x EBP=%08x\n", pcb.pcb_eip, pcb.pcb_esp, pcb.pcb_ebp);
+    printf("PCB @%08x EIP=%08x ESP=%08x EBP=%08x\n", npcbaddr, pcb.pcb_eip, pcb.pcb_esp, pcb.pcb_ebp);
 
     /*
      * get the register values out of the sys pcb and
index d2a1452..cae2daf 100644 (file)
@@ -1,12 +1,12 @@
 # $FreeBSD: src/gnu/usr.bin/binutils/ld/Makefile,v 1.8.2.8 2002/09/01 23:39:14 obrien Exp $
-# $DragonFly: src/gnu/usr.bin/binutils/ld/Attic/Makefile,v 1.2 2003/06/17 04:25:44 dillon Exp $
+# $DragonFly: src/gnu/usr.bin/binutils/ld/Attic/Makefile,v 1.3 2004/01/16 07:45:21 dillon Exp $
 
 .include "../Makefile.inc0"
 
 .PATH: ${SRCDIR}/ld
 
 PROG=  ld
-SCRIPTDIR= /usr/libdata/ldscripts
+SCRIPTDIR= /usr/libdata/gcc2/ldscripts
 SRCS+= ldcref.c ldctor.c ldemul.c ldemul-list.h ldexp.c ldfile.c \
        ldgram.y ldlang.c ldlex.l ldmain.c ldmisc.c \
        ldver.c ldwrite.c lexsup.c mri.c
index 2e038b8..1489bb6 100644 (file)
@@ -1,6 +1,7 @@
 # $FreeBSD: src/gnu/usr.bin/cc/Makefile.inc,v 1.49.2.6 2002/11/15 18:18:38 ru Exp $
-# $DragonFly: src/gnu/usr.bin/cc/Attic/Makefile.inc,v 1.3 2003/11/19 00:51:37 dillon Exp $
+# $DragonFly: src/gnu/usr.bin/cc/Attic/Makefile.inc,v 1.4 2004/01/16 07:45:21 dillon Exp $
 
+BINDIR?=/usr/bin/gcc2
 .include "../Makefile.inc"
 
 # Sometimes this is .include'd several times...
index 5dd056b..3e6894d 100644 (file)
@@ -1,5 +1,5 @@
 # $FreeBSD: src/gnu/usr.bin/cc/c++/Makefile,v 1.16.2.3 2002/11/15 18:18:38 ru Exp $
-# $DragonFly: src/gnu/usr.bin/cc/c++/Attic/Makefile,v 1.2 2003/06/17 04:25:45 dillon Exp $
+# $DragonFly: src/gnu/usr.bin/cc/c++/Attic/Makefile,v 1.3 2004/01/16 07:45:21 dillon Exp $
 
 .include "../Makefile.inc"
 
@@ -13,6 +13,7 @@ NOMAN=        1
 
 CFLAGS+= -DDEFAULT_TARGET_VERSION=\"$(version)\"
 CFLAGS+= -DDEFAULT_TARGET_MACHINE=\"$(target)\"
+CFLAGS+= -DGCCVER=\"$(GCCVER)\"
 
 DPADD+=        ${LIBCC_INT}
 LDADD+=        ${LIBCC_INT}
index 10d94eb..da7d2c5 100644 (file)
@@ -1,5 +1,5 @@
 # $FreeBSD: src/gnu/usr.bin/cc/c++filt/Makefile,v 1.11 1999/11/04 04:45:59 obrien Exp $
-# $DragonFly: src/gnu/usr.bin/cc/c++filt/Attic/Makefile,v 1.2 2003/06/17 04:25:45 dillon Exp $
+# $DragonFly: src/gnu/usr.bin/cc/c++filt/Attic/Makefile,v 1.3 2004/01/16 07:45:21 dillon Exp $
 
 .include "../Makefile.inc"
 
@@ -7,7 +7,7 @@
 
 PROG=  c++filt
 SRCS=  cplus-dem.c getopt.c getopt1.c underscore.c
-BINDIR=        /usr/libexec/${OBJFORMAT}
+BINDIR=        /usr/libexec/gcc2/${OBJFORMAT}
 NOMAN= 1
 
 CFLAGS+= -DMAIN -DIN_GCC -DVERSION=\"$(version)\"
index a548f29..3b48b41 100644 (file)
@@ -1,5 +1,5 @@
 # $FreeBSD: src/gnu/usr.bin/cc/cc/Makefile,v 1.20.2.4 2002/11/15 18:18:38 ru Exp $
-# $DragonFly: src/gnu/usr.bin/cc/cc/Attic/Makefile,v 1.2 2003/06/17 04:25:45 dillon Exp $
+# $DragonFly: src/gnu/usr.bin/cc/cc/Attic/Makefile,v 1.3 2004/01/16 07:45:21 dillon Exp $
 
 .include "../Makefile.inc"
 
@@ -15,6 +15,7 @@ MLINKS=       gcc.1 cc.1 gcc.1 c++.1 gcc.1 g++.1 gcc.1 CC.1
 
 CFLAGS+= -DDEFAULT_TARGET_VERSION=\"$(version)\"
 CFLAGS+= -DDEFAULT_TARGET_MACHINE=\"$(target)\"
+CFLAGS+= -DGCCVER=\"$(GCCVER)\"
 
 DPADD+=        ${LIBCC_INT}
 LDADD+=        ${LIBCC_INT}
index 728384b..65a938c 100644 (file)
@@ -1,5 +1,5 @@
 # $FreeBSD: src/gnu/usr.bin/cc/cc1/Makefile,v 1.18.2.2 2002/06/20 23:13:30 obrien Exp $
-# $DragonFly: src/gnu/usr.bin/cc/cc1/Attic/Makefile,v 1.2 2003/06/17 04:25:45 dillon Exp $
+# $DragonFly: src/gnu/usr.bin/cc/cc1/Attic/Makefile,v 1.3 2004/01/16 07:45:21 dillon Exp $
 
 .include "../Makefile.inc"
 
@@ -9,7 +9,7 @@ PROG=   cc1
 SRCS=  c-parse.y c-lang.c
 # Ugh, compiled twice...
 SRCS+= c-decl.c c-lex.c
-BINDIR=        /usr/libexec
+BINDIR=        /usr/libexec/gcc2
 NOMAN= 1
 NOSHARED=yes
 
index 1a8dd40..e499eea 100644 (file)
@@ -1,5 +1,5 @@
 # $FreeBSD: src/gnu/usr.bin/cc/cc1obj/Makefile,v 1.11.2.2 2002/06/20 23:13:31 obrien Exp $
-# $DragonFly: src/gnu/usr.bin/cc/cc1obj/Attic/Makefile,v 1.2 2003/06/17 04:25:45 dillon Exp $
+# $DragonFly: src/gnu/usr.bin/cc/cc1obj/Attic/Makefile,v 1.3 2004/01/16 07:45:21 dillon Exp $
 
 .include "../Makefile.inc"
 
@@ -9,7 +9,7 @@ PROG=   cc1obj
 SRCS=  c-parse.y objc-act.c
 # Ugh, compiled twice...
 SRCS+= c-decl.c c-lex.c
-BINDIR=        /usr/libexec
+BINDIR=        /usr/libexec/gcc2
 NOMAN= 1
 NOSHARED=yes
 
index 8433352..d9a02b9 100644 (file)
@@ -1,5 +1,5 @@
 # $FreeBSD: src/gnu/usr.bin/cc/cc1plus/Makefile,v 1.22.2.1 2002/06/20 23:13:31 obrien Exp $
-# $DragonFly: src/gnu/usr.bin/cc/cc1plus/Attic/Makefile,v 1.2 2003/06/17 04:25:45 dillon Exp $
+# $DragonFly: src/gnu/usr.bin/cc/cc1plus/Attic/Makefile,v 1.3 2004/01/16 07:45:21 dillon Exp $
 
 .include "../Makefile.inc"
 
@@ -10,7 +10,7 @@ SRCS= parse.y y.tab.h parse.h
 SRCS+= call.c class.c cvt.c decl.c decl2.c errfn.c error.c except.c expr.c \
        friend.c init.c lex.c method.c pt.c ptree.c repo.c rtti.c \
        search.c semantics.c sig.c spew.c tree.c typeck.c typeck2.c xref.c
-BINDIR=        /usr/libexec
+BINDIR=        /usr/libexec/gcc2
 NOMAN= 1
 NOSHARED=yes
 
index fe1610e..74a2e94 100644 (file)
@@ -1,5 +1,5 @@
 /* $FreeBSD: src/gnu/usr.bin/cc/cc_tools/freebsd-native.h,v 1.5.2.9 2002/05/01 20:04:37 obrien Exp $ */
-/* $DragonFly: src/gnu/usr.bin/cc/cc_tools/Attic/dragonfly-native.h,v 1.1 2003/11/19 01:37:27 dillon Exp $ */
+/* $DragonFly: src/gnu/usr.bin/cc/cc_tools/Attic/dragonfly-native.h,v 1.2 2004/01/16 07:45:21 dillon Exp $ */
 
 /* FREEBSD_NATIVE is defined when gcc is integrated into the FreeBSD
    source tree so it can be configured appropriately without using
@@ -31,7 +31,7 @@
 */
 
 #undef  TOOLDIR_BASE_PREFIX            /* Old??  This is not documented. */
-#define STANDARD_EXEC_PREFIX           PREFIX"/libexec/"
+#define STANDARD_EXEC_PREFIX           PREFIX"/libexec/gcc2/"
 #undef  MD_EXEC_PREFIX                 /* We don't want one. */
 
 /* Under FreeBSD, the normal location of the various *crt*.o files is the
@@ -39,9 +39,9 @@
 
 #define STANDARD_STARTFILE_PREFIX      PREFIX"/lib/"
 #ifdef CROSS_COMPILE
-#define CROSS_STARTFILE_PREFIX         PREFIX"/lib/"
+#define CROSS_STARTFILE_PREFIX         PREFIX"/lib/gcc2/"
 #endif
-#undef  MD_STARTFILE_PREFIX            /* We don't need one for now. */
+#define  MD_STARTFILE_PREFIX           PREFIX"/lib/gcc2/"
 
 /* For the native system compiler, we actually build libgcc in a profiled
    version.  So we should use it with -pg.  */
index d8c1775..6f98bce 100644 (file)
@@ -1,5 +1,5 @@
 # $FreeBSD: src/gnu/usr.bin/cc/cccp/Makefile,v 1.16.2.3 2001/08/01 18:48:34 obrien Exp $
-# $DragonFly: src/gnu/usr.bin/cc/cccp/Attic/Makefile,v 1.2 2003/06/17 04:25:45 dillon Exp $
+# $DragonFly: src/gnu/usr.bin/cc/cccp/Attic/Makefile,v 1.3 2004/01/16 07:45:22 dillon Exp $
 
 .include "../Makefile.inc"
 
@@ -8,7 +8,7 @@
 PROG=  cpp0
 SRCS=  cccp.c cexp.y obstack.c prefix.c version.c
 YFLAGS=
-BINDIR=        /usr/libexec
+BINDIR=        /usr/libexec/gcc2
 NOSHARED?=yes
 MAN=   cccp.1
 LINKS= ${BINDIR}/cpp0 ${BINDIR}/cpp
index 01d6309..bb5925f 100644 (file)
@@ -1,5 +1,5 @@
 # $FreeBSD: src/gnu/usr.bin/cc/cpp/Makefile,v 1.18.2.2 2002/11/15 18:18:39 ru Exp $
-# $DragonFly: src/gnu/usr.bin/cc/cpp/Attic/Makefile,v 1.2 2003/06/17 04:25:45 dillon Exp $
+# $DragonFly: src/gnu/usr.bin/cc/cpp/Attic/Makefile,v 1.3 2004/01/16 07:45:22 dillon Exp $
 
 .include "../Makefile.inc"
 
@@ -11,6 +11,7 @@ NOMAN=        1
 
 CFLAGS+= -DDEFAULT_TARGET_VERSION=\"$(version)\"
 CFLAGS+= -DDEFAULT_TARGET_MACHINE=\"$(target)\"
+CFLAGS+= -DGCCVER=\"$(GCCVER)\"
 
 DPADD+=        ${LIBCC_INT}
 LDADD+=        ${LIBCC_INT}
index f3efc27..27249a6 100644 (file)
@@ -1,5 +1,5 @@
 # $FreeBSD: src/gnu/usr.bin/cc/f77/Makefile,v 1.12.2.2 2002/11/15 18:18:39 ru Exp $
-# $DragonFly: src/gnu/usr.bin/cc/f77/Attic/Makefile,v 1.2 2003/06/17 04:25:45 dillon Exp $
+# $DragonFly: src/gnu/usr.bin/cc/f77/Attic/Makefile,v 1.3 2004/01/16 07:45:22 dillon Exp $
 
 .include "../Makefile.inc"
 
@@ -10,6 +10,7 @@ SRCS= gcc.c g77spec.c version.c
 
 CFLAGS+= -DDEFAULT_TARGET_VERSION=\"$(version)\"
 CFLAGS+= -DDEFAULT_TARGET_MACHINE=\"$(target)\"
+CFLAGS+= -DGCCVER=\"$(GCCVER)\"
 
 DPADD= ${LIBCC_INT}
 LDADD= ${LIBCC_INT}
index ac526dd..044fe3f 100644 (file)
@@ -1,5 +1,5 @@
 # $FreeBSD: src/gnu/usr.bin/cc/f771/Makefile,v 1.5.2.1 2000/07/04 05:39:50 obrien Exp $
-# $DragonFly: src/gnu/usr.bin/cc/f771/Attic/Makefile,v 1.2 2003/06/17 04:25:45 dillon Exp $
+# $DragonFly: src/gnu/usr.bin/cc/f771/Attic/Makefile,v 1.3 2004/01/16 07:45:22 dillon Exp $
 
 .include "${.CURDIR}/../Makefile.inc"
 
@@ -10,7 +10,7 @@ SRCS= bad.c bit.c bld.c com.c data.c equiv.c expr.c global.c implic.c info.c \
        intrin.c lab.c lex.c malloc.c name.c parse.c proj.c src.c st.c sta.c \
        stb.c stc.c std.c ste.c storag.c stp.c str.c sts.c stt.c stu.c stv.c \
        stw.c symbol.c target.c top.c type.c version.c where.c
-BINDIR=        /usr/libexec
+BINDIR=        /usr/libexec/gcc2
 NOMAN=
 
 CFLAGS+= -I${GCCDIR}/f -I.
index fc9038b..c83130a 100644 (file)
@@ -1,6 +1,6 @@
 #      from: @(#)bsd.lib.mk    5.26 (Berkeley) 5/2/91
 # $FreeBSD: src/share/mk/bsd.lib.mk,v 1.91.2.15 2002/08/07 16:31:50 ru Exp $
-# $DragonFly: src/share/mk/bsd.lib.mk,v 1.2 2003/06/17 04:37:02 dillon Exp $
+# $DragonFly: src/share/mk/bsd.lib.mk,v 1.3 2004/01/16 07:45:19 dillon Exp $
 #
 
 .include <bsd.init.mk>
@@ -39,6 +39,13 @@ STRIP?=      -s
 .if ${OBJFORMAT} != aout || make(checkdpadd) || defined(NEED_LIBNAMES)
 .include <bsd.libnames.mk>
 .endif
+.if defined(USEGNUDIR)
+USELIBDIR?=${GCCLIBDIR}
+USESHLIBDIR?=${GCCSHLIBDIR}
+.else
+USELIBDIR?=${LIBDIR}
+USESHLIBDIR?=${SHLIBDIR}
+.endif
 
 # prefer .s to a .c, add .po, remove stuff not used in the BSD libraries
 # .So used for PIC object files
@@ -49,13 +56,15 @@ STRIP?=     -s
 PICFLAG=-fpic
 .endif
 
+PO_FLAG=-pg
+
 .c.o:
        ${CC} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET}
        @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET}
        @mv ${.TARGET}.tmp ${.TARGET}
 
 .c.po:
-       ${CC} -pg ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET}
+       ${CC} ${PO_FLAG} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET}
        @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET}
        @mv ${.TARGET}.tmp ${.TARGET}
 
@@ -70,7 +79,7 @@ PICFLAG=-fpic
        @mv ${.TARGET}.tmp ${.TARGET}
 
 .cc.po .C.po .cpp.po .cxx.po:
-       ${CXX} -pg ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET}
+       ${CXX} ${PO_FLAG} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET}
        @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET}
        @mv ${.TARGET}.tmp ${.TARGET}
 
@@ -207,7 +216,7 @@ lib${LIB}_pic.a: ${SOBJS}
        ${RANLIB} ${.TARGET}
 .endif
 
-.endif !defined(INTERNALLIB)
+.endif !defined(INTERNALLIB)
 
 all: ${_LIBS}
 
@@ -253,23 +262,23 @@ realinstall: _libinstall
 _libinstall:
 .if defined(LIB) && !empty(LIB) && !defined(NOINSTALLLIB)
        ${INSTALL} -C -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
-           ${_INSTALLFLAGS} lib${LIB}.a ${DESTDIR}${LIBDIR}
+           ${_INSTALLFLAGS} lib${LIB}.a ${DESTDIR}${USELIBDIR}
 .endif
 .if !defined(NOPROFILE) && defined(LIB) && !empty(LIB)
        ${INSTALL} -C -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
-           ${_INSTALLFLAGS} lib${LIB}_p.a ${DESTDIR}${LIBDIR}
+           ${_INSTALLFLAGS} lib${LIB}_p.a ${DESTDIR}${USELIBDIR}
 .endif
 .if defined(SHLIB_NAME)
        ${INSTALL} ${STRIP} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
            ${_INSTALLFLAGS} ${_SHLINSTALLFLAGS} \
-           ${SHLIB_NAME} ${DESTDIR}${SHLIBDIR}
+           ${SHLIB_NAME} ${DESTDIR}${USESHLIBDIR}
 .if defined(SHLIB_LINK)
-       ln -fs ${SHLIB_NAME} ${DESTDIR}${SHLIBDIR}/${SHLIB_LINK}
+       ln -fs ${SHLIB_NAME} ${DESTDIR}${USESHLIBDIR}/${SHLIB_LINK}
 .endif
 .endif
 .if defined(INSTALL_PIC_ARCHIVE) && defined(LIB) && !empty(LIB)
        ${INSTALL} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
-           ${_INSTALLFLAGS} lib${LIB}_pic.a ${DESTDIR}${LIBDIR}
+           ${_INSTALLFLAGS} lib${LIB}_pic.a ${DESTDIR}${USELIBDIR}
 .endif
 .endif !defined(INTERNALLIB)
 
index dbc4300..64ba070 100644 (file)
@@ -1,5 +1,5 @@
 # $FreeBSD: src/share/mk/bsd.libnames.mk,v 1.28.2.10 2002/08/08 09:33:28 ru Exp $
-# $DragonFly: src/share/mk/bsd.libnames.mk,v 1.3 2003/08/05 07:45:43 asmodai Exp $
+# $DragonFly: src/share/mk/bsd.libnames.mk,v 1.4 2004/01/16 07:45:19 dillon Exp $
 #
 # The include file <bsd.libnames.mk> define library names. 
 # Other include files (e.g. bsd.prog.mk, bsd.lib.mk) include this 
@@ -38,10 +38,10 @@ LIBFL?=             "don't use LIBFL, use LIBL"
 LIBFORM?=      ${DESTDIR}${LIBDIR}/libform.a
 LIBFORMS?=     ${DESTDIR}${LIBDIR}/libforms.a
 LIBFTPIO?=     ${DESTDIR}${LIBDIR}/libftpio.a
-LIBGPLUSPLUS?= ${DESTDIR}${LIBDIR}/libg++.a
+LIBGPLUSPLUS?= ${DESTDIR}${GCCLIBDIR}/libg++.a
 LIBG2C?=       ${DESTDIR}${LIBDIR}/libg2c.a
-LIBGCC?=       ${DESTDIR}${LIBDIR}/libgcc.a
-LIBGCC_PIC?=   ${DESTDIR}${LIBDIR}/libgcc_pic.a
+LIBGCC?=       ${DESTDIR}${GCCLIBDIR}/libgcc.a
+LIBGCC_PIC?=   ${DESTDIR}${GCCLIBDIR}/libgcc_pic.a
 LIBGMP?=       ${DESTDIR}${LIBDIR}/libgmp.a
 LIBGNUREGEX?=  ${DESTDIR}${LIBDIR}/libgnuregex.a
 LIBGSSAPI?=    ${DESTDIR}${LIBDIR}/libgssapi.a # XXX in secure dist, not base
@@ -67,7 +67,7 @@ LIBMYTINFO?=  ${DESTDIR}${LIBDIR}/libmytinfo.a
 LIBNCP?=       ${DESTDIR}${LIBDIR}/libncp.a
 LIBNCURSES?=   ${DESTDIR}${LIBDIR}/libncurses.a
 LIBNETGRAPH?=  ${DESTDIR}${LIBDIR}/libnetgraph.a
-LIBOBJC?=      ${DESTDIR}${LIBDIR}/libobjc.a
+LIBOBJC?=      ${DESTDIR}${GCCLIBDIR}/libobjc.a
 LIBOPIE?=      ${DESTDIR}${LIBDIR}/libopie.a
 
 # The static PAM library doesn't know its secondary dependencies,
@@ -98,7 +98,7 @@ LIBSKEY?=     ${DESTDIR}${LIBDIR}/libskey.a
 LIBSS?=                ${DESTDIR}${LIBDIR}/libss.a
 LIBSSH?=       ${DESTDIR}${LIBDIR}/libssh.a    # XXX in secure dist, not base
 LIBSSL?=       ${DESTDIR}${LIBDIR}/libssl.a    # XXX in secure dist, not base
-LIBSTDCPLUSPLUS?= ${DESTDIR}${LIBDIR}/libstdc++.a
+LIBSTDCPLUSPLUS?= ${DESTDIR}${GCCLIBDIR}/libstdc++.a
 LIBTACPLUS?=   ${DESTDIR}${LIBDIR}/libtacplus.a
 LIBTCL?=       ${DESTDIR}${LIBDIR}/libtcl.a
 LIBTERMCAP?=   ${DESTDIR}${LIBDIR}/libtermcap.a
index 3030faf..492c966 100644 (file)
@@ -1,5 +1,5 @@
 # $FreeBSD: src/share/mk/bsd.own.mk,v 1.27.2.4 2002/07/22 14:21:51 ru Exp $
-# $DragonFly: src/share/mk/bsd.own.mk,v 1.2 2003/06/17 04:37:02 dillon Exp $
+# $DragonFly: src/share/mk/bsd.own.mk,v 1.3 2004/01/16 07:45:19 dillon Exp $
 #
 # The include file <bsd.own.mk> set common variables for owner,
 # group, mode, and directories. Defaults are in brackets.
 #
 # BINMODE      Binary mode. [555]
 #
+# GCCVER       Default gcc version
+# GCCLIBDIR    Default gcc subdirectory [${LIBDIR}/gcc${GCCVER}]
+# GCCSHLIBDIR  Default gcc subdirectory [${SHLIBDIR}/gcc${GCCVER}]
+#
 # NOBINMODE    Mode for non-executable files. [444]
 #
 # LIBDIR       Base path for libraries. [/usr/lib]
@@ -131,15 +135,18 @@ KMODOWN?= ${BINOWN}
 KMODGRP?=      ${BINGRP}
 KMODMODE?=     ${BINMODE}
 
+GCCVER?=       2
 .if ${OBJFORMAT} == aout
 LIBDIR?=       /usr/lib/aout
 .else
 LIBDIR?=       /usr/lib
 .endif
+GCCLIBDIR?=    ${LIBDIR}/gcc${GCCVER}
 LIBCOMPATDIR?= /usr/lib/compat
 LIBDATADIR?=   /usr/libdata
 LINTLIBDIR?=   /usr/libdata/lint
 SHLIBDIR?=     ${LIBDIR}
+GCCSHLIBDIR?=  ${SHLIBDIR}/gcc${GCCVER}
 LIBOWN?=       ${BINOWN}
 LIBGRP?=       ${BINGRP}
 LIBMODE?=      ${NOBINMODE}
index 53bb153..6a4c6bd 100644 (file)
@@ -1,12 +1,12 @@
 #      @(#)Makefile    8.1 (Berkeley) 6/6/93
 # $FreeBSD: src/usr.bin/kdump/Makefile,v 1.4.2.2 2002/07/23 09:16:07 ru Exp $
-# $DragonFly: src/usr.bin/kdump/Makefile,v 1.2 2003/06/17 04:29:27 dillon Exp $
+# $DragonFly: src/usr.bin/kdump/Makefile,v 1.3 2004/01/16 07:45:19 dillon Exp $
 
 .PATH: ${.CURDIR}/../ktrace
 
 PROG=          kdump
 SRCS=          kdump.c ioctl.c subr.c
-CFLAGS+=       -I${.CURDIR}/../ktrace -I${.CURDIR}/../..
+CFLAGS+=       -I${.CURDIR}/../ktrace -I${.CURDIR}/../.. -I${.CURDIR}/../../sys
 
 CLEANFILES=    ioctl.c
 
index fe24e4e..420b1ce 100644 (file)
@@ -1,10 +1,12 @@
 # $FreeBSD: src/usr.bin/objformat/Makefile,v 1.15 1999/12/24 15:18:19 green Exp $
-# $DragonFly: src/usr.bin/objformat/Makefile,v 1.2 2003/06/17 04:29:30 dillon Exp $
+# $DragonFly: src/usr.bin/objformat/Makefile,v 1.3 2004/01/16 07:45:22 dillon Exp $
 
 PROG=          objformat
 CFLAGS+=       -Wall
 NOSHARED?=     YES
 
+# These will exec /usr/libexec/gcc2/<objformat>/<name>
+#
 LINKS+=        ${BINDIR}/objformat ${BINDIR}/addr2line
 LINKS+=        ${BINDIR}/objformat ${BINDIR}/ar
 LINKS+=        ${BINDIR}/objformat ${BINDIR}/as
@@ -20,4 +22,16 @@ LINKS+=      ${BINDIR}/objformat ${BINDIR}/size
 LINKS+=        ${BINDIR}/objformat ${BINDIR}/strings
 LINKS+=        ${BINDIR}/objformat ${BINDIR}/strip
 
+
+# These will exec /usr/bin/gcc2/<name>
+#
+LINKS+=        ${BINDIR}/objformat ${BINDIR}/cpp
+LINKS+=        ${BINDIR}/objformat ${BINDIR}/c++
+LINKS+=        ${BINDIR}/objformat ${BINDIR}/cc
+LINKS+=        ${BINDIR}/objformat ${BINDIR}/f77
+LINKS+=        ${BINDIR}/objformat ${BINDIR}/g++
+LINKS+=        ${BINDIR}/objformat ${BINDIR}/gcc
+LINKS+=        ${BINDIR}/objformat ${BINDIR}/gcov
+
+
 .include <bsd.prog.mk>
index e727499..859525c 100644 (file)
@@ -24,7 +24,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/usr.bin/objformat/objformat.c,v 1.6 1998/10/24 02:01:30 jdp Exp $
- * $DragonFly: src/usr.bin/objformat/objformat.c,v 1.2 2003/06/17 04:29:30 dillon Exp $
+ * $DragonFly: src/usr.bin/objformat/objformat.c,v 1.3 2004/01/16 07:45:22 dillon Exp $
  */
 
 #include <err.h>
@@ -41,16 +41,43 @@ main(int argc, char **argv)
        char *path, *chunk;
        char *cmd, *newcmd = NULL;
        char *objformat_path;
+       char *gccver;
+       char *dirprefix;
+       char *dirpostfix;
 
        if (getobjformat(objformat, sizeof objformat, &argc, argv) == -1)
                errx(1, "Invalid object format");
 
+       /*
+        * Get the last path elemenet of the program name being executed
+        */
        cmd = strrchr(argv[0], '/');
        if (cmd != NULL)
                cmd++;
        else
                cmd = argv[0];
 
+       /*
+        * Directory prefix
+        */
+       if (strcmp(cmd, "c++") == 0 ||
+                  strcmp(cmd, "cc") == 0 ||
+                  strcmp(cmd, "cpp") == 0 ||
+                  strcmp(cmd, "f77") == 0 ||
+                  strcmp(cmd, "g++") == 0 ||
+                  strcmp(cmd, "gcc") == 0 ||
+                  strcmp(cmd, "gcov") == 0
+       ) {
+               dirprefix = "/usr/bin";
+               dirpostfix = "";
+       } else {
+               dirprefix = "/usr/libexec";
+               asprintf(&dirpostfix, "/%s", objformat);
+       }
+
+       /*
+        * The objformat command itself doesn't need another exec
+        */
        if (strcmp(cmd, "objformat") == 0) {
                if (argc != 1) {
                        fprintf(stderr, "Usage: objformat\n");
@@ -60,25 +87,38 @@ main(int argc, char **argv)
                exit(0);
        }
 
-       /* 'make world' glue */
+       /*
+        * make buildweorld glue and GCCVER overrides.
+        */
        objformat_path = getenv("OBJFORMAT_PATH");
        if (objformat_path == NULL)
-               objformat_path = "/usr/libexec";
+               objformat_path = "";
+       if ((gccver = getenv("GCCVER")) == NULL) {
+               gccver = "gcc2";
+       } else if (gccver[0] >= '0' && gccver[0] <= '9') {
+           asprintf(&gccver, "gcc%s", gccver);
+       }
        path = strdup(objformat_path);
 
        setenv("OBJFORMAT", objformat, 1);
 
+       /*
+        * objformat_path could be sequence of colon-separated paths.
+        */
        while ((chunk = strsep(&path, ":")) != NULL) {
                if (newcmd != NULL) {
                        free(newcmd);
                        newcmd = NULL;
                }
-               asprintf(&newcmd, "%s/%s/%s", chunk, objformat, cmd);
+               asprintf(&newcmd, "%s%s/%s%s/%s",
+                       chunk, dirprefix, gccver, dirpostfix, cmd);
                if (newcmd == NULL)
-                       err(1, "cannot allocate memory for new command");
+                       err(1, "cannot allocate memory");
 
                argv[0] = newcmd;
                execv(newcmd, argv);
        }
-       err(1, "could not exec %s/%s in %s", objformat, cmd, objformat_path);
+       err(1, "in path [%s]%s/%s%s/%s",
+               objformat_path, dirprefix, gccver, dirpostfix, cmd);
 }
+
index bcc7e63..9dc751c 100644 (file)
@@ -28,7 +28,7 @@
  *
  * @(#)rpc_main.c 1.30 89/03/30 (C) 1987 SMI
  * $FreeBSD: src/usr.bin/rpcgen/rpc_main.c,v 1.11 1999/08/28 01:05:16 peter Exp $
- * $DragonFly: src/usr.bin/rpcgen/rpc_main.c,v 1.4 2003/11/06 19:30:04 eirikn Exp $
+ * $DragonFly: src/usr.bin/rpcgen/rpc_main.c,v 1.5 2004/01/16 07:45:22 dillon Exp $
  */
 
 
@@ -81,7 +81,7 @@ static void s_output( int, char **, char *, char *, int, char *, int, int );
 
 #define        SVR4_CPP "/usr/ccs/lib/cpp"
 #ifdef __FreeBSD__
-#define        SUNOS_CPP "/usr/libexec/cpp"
+#define        SUNOS_CPP "/usr/bin/cpp"
 #elif defined(__NetBSD__)
 #define SUNOS_CPP "/usr/bin/cpp"
 #else
index f6e46fd..fade3a2 100644 (file)
@@ -1,5 +1,5 @@
 # $FreeBSD: src/usr.bin/truss/Makefile,v 1.10.2.2 2002/07/23 09:18:30 ru Exp $
-# $DragonFly: src/usr.bin/truss/Makefile,v 1.3 2003/08/08 04:18:44 dillon Exp $
+# $DragonFly: src/usr.bin/truss/Makefile,v 1.4 2004/01/16 07:45:22 dillon Exp $
 
 PROG=  truss
 SRCS=  main.c setup.c syscalls.c syscalls.h ioctl.c
@@ -9,7 +9,7 @@ SRCS+=  alpha-fbsd.c
 SRCS+= i386-fbsd.c i386-linux.c linux_syscalls.h
 .endif
 
-CFLAGS+= -I${.CURDIR} -I.
+CFLAGS+= -I${.CURDIR} -I${.CURDIR}/../../sys -I.
 CLEANFILES+=i386l-syscalls.master syscalls.master linux_syscalls.h \
        syscalls.h ioctl.c