From 83322f5718ddc6e2e67b6c32d2a263caed780d9a Mon Sep 17 00:00:00 2001 From: John Hodge Date: Sat, 8 Oct 2011 18:47:31 +0800 Subject: [PATCH] Implementing parts of the ARM usermode --- Usermode/Libraries/acess.ld_src/Makefile | 3 +++ Usermode/Libraries/crt0.o_src/Makefile | 2 +- Usermode/Libraries/ld-acess.so_src/main.c | 2 +- Usermode/include/stdint.h | 7 +++++-- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/Usermode/Libraries/acess.ld_src/Makefile b/Usermode/Libraries/acess.ld_src/Makefile index 2628b140..157f02d9 100644 --- a/Usermode/Libraries/acess.ld_src/Makefile +++ b/Usermode/Libraries/acess.ld_src/Makefile @@ -20,3 +20,6 @@ install: $(BIN) $(BIN): acess_$(ARCHDIR).ld.h @mkdir -p $(dir $(BIN)) cpp -nostdinc -U i386 -P -C $< -o $@ -D__LIBDIR=$(OUTPUTDIR)Libs + +acess_$(ARCHDIR).ld.h: + $(LD) --verbose | awk '{ if( substr($$0,0,5) == "====="){ bPrint = !bPrint; } else { if(bPrint){ print $$0;} } }' | sed 's/SEARCH_DIR\(.*\)/SEARCH_DIR(__LIBDIR)/' > $@ diff --git a/Usermode/Libraries/crt0.o_src/Makefile b/Usermode/Libraries/crt0.o_src/Makefile index fc41f757..8e4787d6 100644 --- a/Usermode/Libraries/crt0.o_src/Makefile +++ b/Usermode/Libraries/crt0.o_src/Makefile @@ -15,6 +15,6 @@ install: $(BIN) clean: $(RM) $(BIN) -$(BIN): crt0.$(ARCHDIR).asm +$(BIN): crt0.$(ARCHDIR).$(ASSUFFIX) @mkdir -p $(dir $(BIN)) $(AS) $(ASFLAGS) $< -o $@ diff --git a/Usermode/Libraries/ld-acess.so_src/main.c b/Usermode/Libraries/ld-acess.so_src/main.c index 0eb28d14..49bbe2de 100644 --- a/Usermode/Libraries/ld-acess.so_src/main.c +++ b/Usermode/Libraries/ld-acess.so_src/main.c @@ -13,7 +13,7 @@ void *ElfRelocate(void *Base, char **envp, const char *Filename); void *PE_Relocate(void *Base, char **envp, const char *Filename); // === Imports === -extern void gLinkedBase; +extern char gLinkedBase[]; extern tLoadedLib gLoadedLibraries[]; // === CODE === diff --git a/Usermode/include/stdint.h b/Usermode/include/stdint.h index f2707aa4..0e44f142 100644 --- a/Usermode/include/stdint.h +++ b/Usermode/include/stdint.h @@ -14,11 +14,14 @@ typedef signed int int32_t; typedef signed long long int64_t; #if ARCHDIR_is_x86 -typedef uint32_t intptr_t; +typedef int32_t intptr_t; typedef uint32_t uintptr_t; #elif ARCHDIR_is_x86_64 -typedef uint64_t intptr_t; +typedef int64_t intptr_t; typedef uint64_t uintptr_t; +#elif ARCHDIR_is_armv7 +typedef int32_t intptr_t; +typedef uint32_t uintptr_t; #else # error "Unknown pointer size" #endif -- 2.20.1