aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2005-03-06 07:32:21 +0000
committerH. Peter Anvin <hpa@zytor.com>2005-03-06 07:32:21 +0000
commit96590039d93da05f05a56096713a8d2335d610e0 (patch)
tree5096d7d803d23996e5e56613197b4bdf6f0e1cbd
parent2f239f2468a063026680630f99ec5d799df4da46 (diff)
downloadklibc-96590039d93da05f05a56096713a8d2335d610e0.tar.gz
Changes for SPARC; we genuinely need libgcc on some archesklibc-0.214
-rw-r--r--MCONFIG3
-rw-r--r--klcc.in16
-rw-r--r--klibc/arch/sparc/Makefile.inc7
3 files changed, 21 insertions, 5 deletions
diff --git a/MCONFIG b/MCONFIG
index 9b884f103d3cc..7a24b821adf51 100644
--- a/MCONFIG
+++ b/MCONFIG
@@ -59,8 +59,7 @@ HOST_LIBS =
# Static library paths
CRT0 = $(KLIBOBJ)/crt0.o
KLIBC = $(KLIBOBJ)/libc.a
-# Don't use libgcc for now, to see if anything breaks...
-LIBGCC = # $(shell $(CC) --print-libgcc)
+LIBGCC = $(shell $(CC) $(REQFLAGS) $(OPTFLAGS) --print-libgcc)
# Shared library paths
CRTSHARED = $(KLIBOBJ)/interp.o
diff --git a/klcc.in b/klcc.in
index bdd03e73b3399..d8721c9a6bacd 100644
--- a/klcc.in
+++ b/klcc.in
@@ -78,6 +78,11 @@ sub mysystem(@) {
}
#
+# Initialization
+#
+open(NULL, '+<', '/dev/null') or die "$0: cannot open /dev/null\n";
+
+#
# Begin parsing options.
#
@@ -191,10 +196,17 @@ if ( $operation ne '' ) {
}
}
+ # Get the libgcc pathname for the *current* gcc
+ open(LIBGCC, '-|', $CC, @ccopt, '-print-libgcc-file-name')
+ or die "$0: cannot get libgcc filename\n";
+ $libgcc = <LIBGCC>;
+ chomp $libgcc;
+ close(LIBGCC);
+
if ( $shared ) {
- $rv = mysystem($LD, @LDFLAGS, @sharedopt, @ldopt, @outopt, @objs, @sharedlib);
+ $rv = mysystem($LD, @LDFLAGS, @sharedopt, @ldopt, @outopt, @objs, @sharedlib, $libgcc);
} else {
- $rv = mysystem($LD, @LDFLAGS, @staticopt, @ldopt, @outopt, @objs, @staticlib);
+ $rv = mysystem($LD, @LDFLAGS, @staticopt, @ldopt, @outopt, @objs, @staticlib, $libgcc);
}
unlink(@rmobjs);
diff --git a/klibc/arch/sparc/Makefile.inc b/klibc/arch/sparc/Makefile.inc
index 6ea66114fa7eb..bea1dbc94e83d 100644
--- a/klibc/arch/sparc/Makefile.inc
+++ b/klibc/arch/sparc/Makefile.inc
@@ -16,7 +16,12 @@ ARCHOBJS = \
arch/$(ARCH)/umul.o \
arch/$(ARCH)/setjmp.o \
arch/$(ARCH)/syscall.o \
- arch/$(ARCH)/sysfork.o
+ arch/$(ARCH)/sysfork.o \
+ libgcc/__divdi3.o \
+ libgcc/__moddi3.o \
+ libgcc/__udivdi3.o \
+ libgcc/__umoddi3.o \
+ libgcc/__udivmoddi4.o
arch/$(ARCH)/sdiv.S: arch/$(ARCH)/divrem.m4
@echo 'building $@ from $^'