1130b656e5
This will make a number of things easier in the future, as well as (finally!) avoiding the Id-smashing problem which has plagued developers for so long. Boy, I'm glad we're not using sup anymore. This update would have been insane otherwise.
96 lines
2.7 KiB
Makefile
96 lines
2.7 KiB
Makefile
#
|
|
# $FreeBSD$
|
|
#
|
|
|
|
LIB= gcc
|
|
|
|
# Install libgcc_pic.a, since ld.so uses it.
|
|
INSTALL_PIC_ARCHIVE= yes
|
|
|
|
#
|
|
# XXX This is a hack, but it seems to work. libgcc1.a is supposed to be
|
|
# compiled by the native compiler, and libgcc2.a is meant to be compiled
|
|
# by *this* version of gcc.
|
|
#
|
|
# Normally, this does not make any difference, since we only have gcc, but
|
|
# when bootstrapping from gcc-2.6.3, we have to use the freshly built 2.7.2
|
|
# compiler for some of the libgcc2.c __attribute__ stuff.
|
|
#
|
|
.if exists(${.OBJDIR}/../cc)
|
|
XCC= ${.OBJDIR}/../cc/cc
|
|
.else
|
|
XCC= ${.CURDIR}/../cc/cc
|
|
.endif
|
|
|
|
.if exists(${.OBJDIR}/../cc1)
|
|
XCC+= -B${.OBJDIR}/../cc1/
|
|
.else
|
|
XCC+= -B${.CURDIR}/../cc1/
|
|
.endif
|
|
|
|
.if exists(${.OBJDIR}/../cpp)
|
|
XCC+= -B${.OBJDIR}/../cpp/
|
|
.else
|
|
XCC+= -B${.CURDIR}/../cpp/
|
|
.endif
|
|
|
|
# Members of libgcc1.a.
|
|
LIB1FUNCS= _mulsi3 _udivsi3 _divsi3 _umodsi3 _modsi3 \
|
|
_lshrsi3 _ashrsi3 _ashlsi3 \
|
|
_divdf3 _muldf3 _negdf2 _adddf3 _subdf3 \
|
|
_fixdfsi _fixsfsi _floatsidf _floatsisf _truncdfsf2 _extendsfdf2 \
|
|
_addsf3 _negsf2 _subsf3 _mulsf3 _divsf3 \
|
|
_eqdf2 _nedf2 _gtdf2 _gedf2 _ltdf2 _ledf2 \
|
|
_eqsf2 _nesf2 _gtsf2 _gesf2 _ltsf2 _lesf2
|
|
|
|
# Library members defined in libgcc2.c.
|
|
LIB2FUNCS= _muldi3 _divdi3 _moddi3 _udivdi3 _umoddi3 _negdi2 \
|
|
_lshrdi3 _ashldi3 _ashrdi3 _ffsdi2 \
|
|
_udiv_w_sdiv _udivmoddi4 _cmpdi2 _ucmpdi2 _floatdidf _floatdisf \
|
|
_fixunsdfsi _fixunssfsi _fixunsdfdi _fixdfdi _fixunssfdi _fixsfdi \
|
|
_fixxfdi _fixunsxfdi _floatdixf _fixunsxfsi \
|
|
_fixtfdi _fixunstfdi _floatditf \
|
|
__gcc_bcmp _varargs _eprintf _op_new _op_vnew _new_handler \
|
|
_op_delete \
|
|
_op_vdel _bb _shtab _clear_cache _trampoline __main _exit _ctors \
|
|
_eh _pure
|
|
|
|
LIB1OBJS=${LIB1FUNCS:T:S@$@.o@}
|
|
LIB2OBJS=${LIB2FUNCS:T:S@$@.o@}
|
|
LIB1SOBJS=${LIB1FUNCS:T:S@$@.so@}
|
|
LIB2SOBJS=${LIB2FUNCS:T:S@$@.so@}
|
|
P1OBJS=${LIB1FUNCS:T:S@$@.po@}
|
|
P2OBJS=${LIB2FUNCS:T:S@$@.po@}
|
|
|
|
OBJS= ${LIB1OBJS} ${LIB2OBJS}
|
|
|
|
${LIB1OBJS}: libgcc1.c
|
|
${CC} -c ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${GCCDIR}/libgcc1.c
|
|
@${LD} -O ${.TARGET} -x -r ${.TARGET}
|
|
|
|
${LIB2OBJS}: libgcc2.c
|
|
${XCC} -c ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${GCCDIR}/libgcc2.c
|
|
@${LD} -O ${.TARGET} -x -r ${.TARGET}
|
|
|
|
.if !defined(NOPIC)
|
|
${LIB1SOBJS}: libgcc1.c
|
|
${CC} -c -fpic ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${GCCDIR}/libgcc1.c
|
|
@${LD} -O ${.TARGET} -x -r ${.TARGET}
|
|
|
|
${LIB2SOBJS}: libgcc2.c
|
|
${XCC} -c -fpic ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${GCCDIR}/libgcc2.c
|
|
@${LD} -O ${.TARGET} -x -r ${.TARGET}
|
|
.endif
|
|
|
|
.if !defined(NOPROFILE)
|
|
${P1OBJS}: libgcc1.c
|
|
${CC} -c -p ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${GCCDIR}/libgcc1.c
|
|
@${LD} -O ${.TARGET} -X -r ${.TARGET}
|
|
|
|
${P2OBJS}: libgcc2.c
|
|
${XCC} -c -p ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${GCCDIR}/libgcc2.c
|
|
@${LD} -O ${.TARGET} -X -r ${.TARGET}
|
|
.endif
|
|
|
|
.include <bsd.lib.mk>
|