diff options
author | H. Peter Anvin <hpa@zytor.com> | 2005-03-06 07:32:21 +0000 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2005-03-06 07:32:21 +0000 |
commit | 96590039d93da05f05a56096713a8d2335d610e0 (patch) | |
tree | 5096d7d803d23996e5e56613197b4bdf6f0e1cbd | |
parent | 2f239f2468a063026680630f99ec5d799df4da46 (diff) | |
download | klibc-96590039d93da05f05a56096713a8d2335d610e0.tar.gz |
Changes for SPARC; we genuinely need libgcc on some archesklibc-0.214
-rw-r--r-- | MCONFIG | 3 | ||||
-rw-r--r-- | klcc.in | 16 | ||||
-rw-r--r-- | klibc/arch/sparc/Makefile.inc | 7 |
3 files changed, 21 insertions, 5 deletions
@@ -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 @@ -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 $^' |