Usermode/ld-acess - Removed libgcc exports
authorJohn Hodge <[email protected]>
Tue, 31 Jul 2012 03:18:41 +0000 (11:18 +0800)
committerJohn Hodge <[email protected]>
Tue, 31 Jul 2012 03:18:41 +0000 (11:18 +0800)
Usermode/Libraries/Makefile.tpl
Usermode/Libraries/ld-acess.so_src/Makefile
Usermode/Libraries/ld-acess.so_src/_stublib.c
Usermode/Libraries/ld-acess.so_src/export.c
Usermode/Libraries/ld-acess.so_src/lib.c
Usermode/Libraries/libc.so_src/include_exp/stdlib.h

index 54b203a..7687f2e 100644 (file)
@@ -37,7 +37,7 @@ endif
 $(_BIN): $(OBJ) $(_LIBS)
        @mkdir -p $(dir $(_BIN))
        @echo [LD] -o $(BIN) $(OBJ)
-       @$(LD) $(LDFLAGS) -o $(_BIN) $(OBJ)
+       $(LD) $(LDFLAGS) -o $(_BIN) $(OBJ) $(shell $(CC) -print-libgcc-file-name)
        @$(DISASM) -S $(_BIN) > $(_OBJPREFIX)$(BIN).dsm
 
 $(_OBJPREFIX)%.o: %.c
index 44af24a..d451b2c 100644 (file)
@@ -20,7 +20,7 @@ include ../Makefile.tpl
 # create libld-acess.so
 $(_XBIN): $(_OBJPREFIX)_stublib.o
        @echo [LD] -o -shared libld-acess.so
-       $(LD) -shared -o $@ $<
+       $(LD) -shared -o $@ $< $(LDFLAGS)
 #      @$(LD) $(LDFLAGS) -o $@ $(OBJ)
 
 
index abf8043..4096768 100644 (file)
@@ -14,6 +14,7 @@ int _errno;
 #include "arch/syscalls.s.h"
 
 // libgcc functions
+#if 0
 uint64_t __udivdi3(uint64_t Num, uint64_t Den){return 0;}
 uint64_t __umoddi3(uint64_t Num, uint64_t Den){return 0;}
 
@@ -21,6 +22,7 @@ int32_t __divsi3(int32_t Num, int32_t Den){return 0;}
 int32_t __modsi3(int32_t Num, int32_t Den){return 0;}
 uint32_t __udivsi3(uint32_t Num, uint32_t Den){return 0;}
 uint32_t __umodsi3(uint32_t Num, uint32_t Den){return 0;}
+#endif
 
 void   *_crt0_exit_handler;
 
index 1062d7e..32f70d2 100644 (file)
@@ -23,6 +23,7 @@ const struct {
 }      caLocalExports[] = {
        EXP(gLoadedLibraries),
        EXP(_exit),
+       EXP(_errno),
        EXP(clone),
        EXP(kill),
        EXP(yield),
@@ -75,12 +76,14 @@ const struct {
        EXP(_SysAllocate),
        EXP(_SysDebug),
 
+#if 0
        EXP(__umoddi3),
        EXP(__udivdi3),
        EXP(__divsi3),
        EXP(__modsi3),
        EXP(__udivsi3),
        EXP(__umodsi3)
+#endif
 };
 
 const int      ciNumLocalExports = sizeof(caLocalExports)/sizeof(caLocalExports[0]);
index da37dea..0672102 100644 (file)
@@ -112,6 +112,7 @@ uint64_t __divmod64(uint64_t Num, uint64_t Den, uint64_t *Rem)
        return ret;
 }
 
+#if 0
 uint32_t __divmod32(uint32_t Num, uint32_t Den, uint32_t *Rem)
 {
        uint32_t        ret = 0, add = 1;
@@ -198,4 +199,5 @@ uint32_t __umodsi3(uint32_t Num, uint32_t Den)
        __divmod32(Num, Den, &ret);
        return ret;
 }
+#endif
 
index 0e6d9e0..8acfb8b 100644 (file)
 \r
 /* --- StdLib --- */\r
 extern void    _exit(int code) __attribute__((noreturn));      /* NOTE: Also defined in acess/sys.h */\r
+extern long long       strtoll(const char *ptr, char **end, int base);\r
+extern long    strtol(const char *ptr, char **end, int base);\r
 extern int     atoi(const char *ptr);\r
 extern void    exit(int status) __attribute__((noreturn));\r
 extern void    atexit(void (*__func)(void));\r
 extern void    qsort(void *base, size_t nmemb, size_t size, int(*compar)(const void *, const void *));\r
+extern int     abs(int j);\r
+extern long int        labs(long int j);\r
+extern long long int   llabs(long long int j);\r
 \r
 /* --- Environment --- */\r
 extern char    *getenv(const char *name);\r

UCC git Repository :: git.ucc.asn.au