CCVER=gcc46: Separate LDFLAGS meant for gcc and ld
authorJohn Marino <draco@marino.st>
Sat, 4 Feb 2012 18:27:10 +0000 (19:27 +0100)
committerJohn Marino <draco@marino.st>
Sat, 4 Feb 2012 19:56:41 +0000 (20:56 +0100)
The same LDFLAGS variable was being applied to gcc and ld.  Apparently
gcc 4.4 and below recognized and accepted the -m switch and passed it
on to the linker, but gcc 4.6 wasn't handling it.

A new variable COMPILER_LDFLAGS has been created alongside LDFLAGS.  The
former is meant to be passed to gcc and the latter is passed to ld.

sys/boot/pc32/kgzldr/Makefile
sys/boot/pc32/loader/Makefile
sys/boot/pc32/loader_tftp/Makefile
sys/boot/pc64/Makefile.inc

index 5e7dd95..ff6c999 100644 (file)
@@ -1,12 +1,10 @@
 # $FreeBSD: src/sys/boot/i386/kgzldr/Makefile,v 1.16 2003/06/30 00:15:38 ru Exp $
-# $DragonFly: src/sys/boot/pc32/kgzldr/Makefile,v 1.3 2003/11/10 06:08:35 dillon Exp $
 
 SRCS=  start.s boot.c inflate.c lib.c crt.s sio.s
 OBJS=  ${SRCS:N*.h:R:S/$/.o/g}
-CFLAGS=        -ffreestanding
 CFLAGS+=-Os
 CFLAGS+=-DKZIP
-LDFLAGS=-nostdlib -static -Wl,-r
+COMPILER_LDFLAGS=-nostdlib -static -Wl,-r
 .PATH: ${.CURDIR}/../../../kern
 
 CLEANFILES=kgzldr.o
@@ -17,7 +15,7 @@ AFLAGS+=--defsym SIO_PRT=${BOOT_COMCONSOLE_PORT}
 all: kgzldr.o
 
 kgzldr.o: ${OBJS}
-       ${CC} ${LDFLAGS} -o ${.TARGET} ${OBJS}
+       ${CC} ${COMPILER_LDFLAGS} -o ${.TARGET} ${OBJS}
 
 realinstall:
        ${INSTALL} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
index f401009..dd66074 100644 (file)
@@ -1,5 +1,4 @@
 # $FreeBSD: src/sys/boot/i386/loader/Makefile,v 1.66 2003/06/26 03:51:57 peter Exp $
-# $DragonFly: src/sys/boot/pc32/loader/Makefile,v 1.11 2005/09/03 23:52:49 dillon Exp $
 #
 
 PROG=          loader
@@ -19,7 +18,6 @@ ORG= 0x0
 # architecture-specific loader code
 SRCS=          main.c conf.c
 
-CFLAGS+=       -ffreestanding
 # Enable PXE TFTP or NFS support, not both.
 #CFLAGS+=      -DLOADER_TFTP_SUPPORT
 CFLAGS+=       -DLOADER_NFS_SUPPORT
@@ -51,8 +49,8 @@ CFLAGS+=      -I${.CURDIR}/../../.. -I.
 
 CLEANFILES+=   vers.c vers.o ${PROG}.list ${PROG}.bin ${PROG}.sym ${PROG}.help
 
-CFLAGS+=       -Wall
-LDFLAGS=       -nostdlib -static -Ttext ${ORG}
+CFLAGS+=               -Wall
+COMPILER_LDFLAGS=      -nostdlib -static -Ttext ${ORG}
 
 # i386 standalone support library
 LIBI386=       ${.OBJDIR}/../libi386/libi386.a
@@ -85,7 +83,6 @@ CFLAGS+=      -elf
 
 # Debug me!
 #CFLAGS+=      -g
-#LDFLAGS+=     -g
 
 vers.o:        ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version
        sh ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version ${NEWVERSWHAT}
@@ -120,7 +117,7 @@ FILES+=     ${.CURDIR}/dloader.rc
 .include <bsd.prog.mk>
 
 ${PROG}.sym: ${OBJS} ${LIBI386} ${LIBSTAND} ${LIBDLOADER} vers.o
-       ${CC} ${LDFLAGS} -o ${.TARGET} ${BTXCRT} ${OBJS} vers.o \
+       ${CC} ${COMPILER_LDFLAGS} -o ${.TARGET} ${BTXCRT} ${OBJS} vers.o \
                ${LIBDLOADER} ${LIBI386} ${LIBSTAND}
 
 # If it's not there, don't consider it a target
index 6406b24..0496114 100644 (file)
@@ -1,7 +1,5 @@
 # Works like the normal loader except the kernel, modules, and other loader
 # files are loaded via TFTP instead of NFS.
-#
-# $DragonFly: src/sys/boot/pc32/loader_tftp/Makefile,v 1.2 2005/09/04 12:20:46 swildner Exp $
 
 PROG=          loader_tftp
 STRIP=
@@ -21,7 +19,6 @@ ORG= 0x0
 # architecture-specific loader code
 SRCS=          main.c conf.c
 
-CFLAGS+=       -ffreestanding
 CFLAGS+=       -DLOADER_TFTP_SUPPORT
 #CFLAGS+=      -DLOADER_NFS_SUPPORT
 
@@ -52,8 +49,8 @@ CFLAGS+=      -I${.CURDIR}/../../.. -I.
 
 CLEANFILES+=   vers.c vers.o ${PROG}.list ${PROG}.bin ${PROG}.sym ${PROG}.help
 
-CFLAGS+=       -Wall
-LDFLAGS=       -nostdlib -static -Ttext ${ORG}
+CFLAGS+=               -Wall
+COMPILER_LDFLAGS=      -nostdlib -static -Ttext ${ORG}
 
 # i386 standalone support library
 LIBI386=       ${.OBJDIR}/../libi386/libi386.a
@@ -86,7 +83,6 @@ CFLAGS+=      -elf
 
 # Debug me!
 #CFLAGS+=      -g
-#LDFLAGS+=     -g
 
 vers.o:        ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version
        sh ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version ${NEWVERSWHAT}
@@ -120,7 +116,7 @@ FILES+=     ${.CURDIR}/../loader/dloader.rc
 .include <bsd.prog.mk>
 
 ${PROG}.sym: ${OBJS} ${LIBI386} ${LIBSTAND} ${LIBDLOADER} vers.o
-       ${CC} ${LDFLAGS} -o ${.TARGET} ${BTXCRT} ${OBJS} vers.o \
+       ${CC} ${COMPILER_LDFLAGS} -o ${.TARGET} ${BTXCRT} ${OBJS} vers.o \
                ${LIBDLOADER} ${LIBI386} ${LIBSTAND}
 
 # If it's not there, don't consider it a target
index 508dc06..53202c8 100644 (file)
@@ -5,6 +5,7 @@ __pc64__:
 
 CFLAGS+=               -m32
 LDFLAGS+=              -m elf_i386
+COMPILER_LDFLAGS+=     -Wl,-m,elf_i386
 AFLAGS+=               --32
 
 .include "../pc32/Makefile.inc"