Home | History | Annotate | Line # | Download | only in libgcc_s
      1  1.17       mrg #	$NetBSD: Makefile,v 1.17 2025/11/13 19:53:33 mrg Exp $
      2   1.1       mrg 
      3   1.1       mrg USE_SHLIBDIR=	yes
      4   1.1       mrg REQUIRETOOLS=	yes
      5   1.1       mrg NOLINT=		# defined
      6   1.1       mrg 
      7   1.1       mrg LIB=		gcc_s
      8   1.1       mrg NOSTATICLIB=	# defined
      9   1.1       mrg NOPROFILE=	# defined
     10   1.1       mrg NOPICINSTALL=	# defined
     11   1.1       mrg 
     12  1.10       mrg .include "../../../Makefile.gcc_path"
     13   1.1       mrg .include <bsd.own.mk>
     14   1.1       mrg 
     15   1.1       mrg .if ${MKGCC} != "no"
     16   1.1       mrg 
     17   1.1       mrg .cc: # disable .cc->NULL transform
     18   1.1       mrg 
     19   1.1       mrg SHLIB_MAJOR=	1
     20   1.1       mrg SHLIB_MINOR=	0
     21   1.1       mrg 
     22  1.14  christos LDFLAGS+=	-nodefaultlibs -Wl,-z -Wl,nodelete
     23   1.1       mrg LDFLAGS+=	-Wl,--version-script=${.OBJDIR}/libgcc.map
     24   1.1       mrg 
     25   1.8       mrg # XXX handle this better?  GCC 4.8 moved them.
     26   1.5  christos .if ${MACHINE} == "emips"
     27  1.12       mrg LIB2ADD_HACK+=	${GNUHOSTDIST}/gcc/config/floatunsidf.c \
     28  1.12       mrg 		${GNUHOSTDIST}/gcc/config/floatunsisf.c
     29   1.2       mrg .endif
     30   1.2       mrg 
     31  1.13       mrg # XXXGCC5 GCC 5.3 has all these in libgcc and we have them in libc.
     32  1.16  christos .if ${MACHINE_MIPS64}
     33  1.13       mrg LIB2ADD_EDITED= ${G_LIB2ADD:T:Nfloatsisf.c:Nfloatunsisf.c:Nfloatsidf.c:Nfloatunsidf.c:Nfixsfsi.c:Nextendsfdf2.c:Naddsf3.c:Nmulsf3.c:Ndivsf3.c:Nadddf3.c:Nsubdf3.c:Nmuldf3.c:Ndivdf3.c:Nfixdfsi.c:S/.asm/.S/}
     34  1.13       mrg .else
     35  1.13       mrg LIB2ADD_EDITED=	${G_LIB2ADD:T:S/.asm/.S/}
     36  1.13       mrg .endif
     37  1.13       mrg 
     38   1.6      matt SRCS+=		${LIB2FUNCS} ${LIB2DIVMOD} ${LIB2_EH} ${LIB2_EHASM} \
     39  1.13       mrg 		${LIB2ADD_EDITED} \
     40  1.12       mrg 		${LIB2ADD_HACK:T:S/.asm/.S/} \
     41   1.8       mrg 		${G_LIB2ADD_ST:T} ${LIB1ASMFUNCS}
     42   1.1       mrg 
     43  1.17       mrg # Find just built libgcc.a
     44  1.17       mrg LIBGCCOBJDIR!=	cd ${.CURDIR}/../libgcc && ${PRINTOBJDIR}
     45  1.17       mrg LDADD+=		-L${LIBGCCOBJDIR} -lgcc
     46  1.17       mrg 
     47  1.15       mrg COPTS.unwind-dw2.c += -Wno-stack-protector
     48   1.1       mrg 
     49   1.1       mrg DPADD+=		libgcc.map
     50   1.1       mrg CLEANFILES+=	libgcc.map
     51   1.1       mrg 
     52   1.1       mrg .include <bsd.lib.mk>
     53   1.1       mrg 
     54   1.1       mrg .if ${MKPICLIB} != "no"
     55   1.1       mrg LIBGCC_S_OBJS=	${SOBJS}
     56   1.1       mrg .else
     57   1.1       mrg LIBGCC_S_OBJS=	${OBJS}
     58   1.1       mrg .endif
     59   1.1       mrg 
     60   1.8       mrg LIBGCC_STD_VER_IN=	${GNUHOSTDIST}/libgcc/libgcc-std.ver.in
     61   1.9      tron CLEANFILES+=		libgcc-std.ver
     62   1.8       mrg 
     63   1.8       mrg libgcc-std.ver:	${LIBGCC_STD_VER_IN}
     64   1.8       mrg 	${_MKTARGET_CREATE}
     65   1.8       mrg 	${TOOL_SED}  -e 's/__PFX__/__/g' -e 's/__FIXPTPFX__/__/g' < ${LIBGCC_STD_VER_IN}  > ${.TARGET}.tmp
     66   1.8       mrg 	mv ${.TARGET}.tmp ${.TARGET}
     67   1.8       mrg 
     68   1.1       mrg libgcc.map:	${LIBGCC_S_OBJS} ${G_SHLIB_MKMAP} ${G_SHLIB_MAPFILES}
     69   1.1       mrg 	{ \
     70   1.1       mrg 		${NM} ${G_SHLIB_NM_FLAGS} ${LIBGCC_S_OBJS}; \
     71   1.1       mrg 		echo %%; \
     72   1.8       mrg 		for f in ${G_SHLIB_MAPFILES}; do \
     73  1.11       apb 			if [ -f ${.OBJDIR}/$${f} ]; then \
     74   1.8       mrg 				cat ${.OBJDIR}/$${f}; \
     75   1.8       mrg 			else \
     76   1.8       mrg 				cat $${f}; \
     77   1.8       mrg 			fi; \
     78   1.8       mrg 		done | \
     79   1.1       mrg 			${TOOL_SED} -e "/^[ 	]*#/d" \
     80   1.1       mrg 			    -e 's/^%\(if\|else\|elif\|endif\|define\)/#\1/' | \
     81   1.1       mrg 	  		${CC} ${G_LIBGCC2_CFLAGS} ${G_INCLUDES} -E -xassembler-with-cpp -; \
     82   1.1       mrg 	} | ${TOOL_AWK} -f ${G_SHLIB_MKMAP} > ${.TARGET}.tmp
     83   1.1       mrg 	mv ${.TARGET}.tmp ${.TARGET} 
     84   1.1       mrg 
     85   1.1       mrg .else
     86   1.1       mrg .include <bsd.prog.mk> # do nothing
     87   1.1       mrg .endif
     88