Externals/cross-compiler - Patching to get things compiling
authorJohn Hodge <[email protected]>
Sun, 3 Mar 2013 11:51:39 +0000 (19:51 +0800)
committerJohn Hodge <[email protected]>
Sun, 3 Mar 2013 11:51:39 +0000 (19:51 +0800)
- Needed to fix up stdio.h and a couple of other headers

Externals/cross-compiler/Makefile
Externals/cross-compiler/patches/gcc/gcc/config.gcc.patch
Usermode/Applications/telnet_src/main.c
Usermode/Applications/telnetd_src/main.c
Usermode/Libraries/Makefile.tpl
Usermode/Libraries/libc.so_src/include_exp/assert.h
Usermode/Libraries/libc.so_src/include_exp/stdio.h
Usermode/Libraries/libc.so_src/include_exp/time.h
Usermode/Libraries/libc.so_src/stub.c
Usermode/Libraries/libposix.so_src/include_exp/sys/types.h
Usermode/Libraries/libpsocket.so_src/include_exp/sys/socket.h

index 0326b44..60c94d2 100644 (file)
@@ -9,10 +9,17 @@ BINUTILS_DIR:=$(BINUTILS_ARCHIVE:%.tar.bz2=%)
 BINUTILS_CHANGES := config.sub bfd/config.bfd gas/configure.tgt ld/configure.tgt ld/emulparams/acess2_i386.sh ld/Makefile.in
 GCC_CHANGES := config.sub gcc/config.gcc gcc/config/acess2.h libgcc/config.host 
 
-ARCH?=i586
-PARLEVEL ?= 3
+ifeq ($(ARCH),x86)
+ BFDARCH:=i586
+else ifeq ($(ARCH),x86_64)
+ BFDARCH:=x86_64
+else
+ $(error Arch $(ARCH) is not supported by magic gcc makfile)
+endif
 
-TARGET=$(ARCH)-pc-acess2
+PARLEVEL ?= 1
+
+TARGET=$(BFDARCH)-pc-acess2
 PREFIX=$(shell pwd)/cross
 
 .PHONY: all clean binutils gcc include
@@ -23,13 +30,14 @@ include:
        mkdir -p $(PREFIX)
        rm -r $(PREFIX)/include
        ln -s $(ACESSDIR)/Usermode/include $(PREFIX)/include
+       cd $(PREFIX) && (test \! -e usr && ln -s . usr); true
 
 gcc: $(GCC_DIR) $(PREFIX)/bin/$(TARGET)-gcc
 
 binutils: $(BINUTILS_DIR) $(PREFIX)/bin/$(TARGET)-ld
 
 clean:
-       $(RM) -rf $(BINUTILS_DIR) build-*-$(ARCH)
+       $(RM) -rf $(BINUTILS_DIR) $(GCC_DIR) build-$(ARCH)
 
 $(BINUTILS_DIR) $(GCC_DIR): %: %.tar.bz2
        tar -xf $<
@@ -51,14 +59,21 @@ $(BINUTILS_DIR)/%: patches/binutils/%
        @echo [CP] $@
        @cp $< $@
 
-$(PREFIX)/bin/$(TARGET)-ld: $(addprefix $(BINUTILS_DIR)/,$(BINUTILS_CHANGES))
-       @mkdir -p build-binutils-$(ARCH)
-       @cd build-binutils-$(ARCH) && ../$(BINUTILS_DIR)/configure --target=$(TARGET) --prefix=$(PREFIX) --disable-nls
-       @cd build-binutils-$(ARCH) && make all install -j $(PARLEVEL)
+BDIR_GCC := build-$(ARCH)/gcc
+BDIR_BINUTILS := build-$(ARCH)/binutils
+
+$(BDIR_BINUTILS)/Makefile: $(addprefix $(BINUTILS_DIR)/,$(BINUTILS_CHANGES))
+       @mkdir -p $(BDIR_BINUTILS)
+       @cd $(BDIR_BINUTILS) && ../../$(BINUTILS_DIR)/configure --target=$(TARGET) --prefix=$(PREFIX) --disable-nls
+
+$(PREFIX)/bin/$(TARGET)-ld: $(BDIR_BINUTILS)/Makefile
+       @cd $(BDIR_BINUTILS) && make all install -j $(PARLEVEL)
+
+$(BDIR_GCC)/Makefile: Makefile $(addprefix $(GCC_DIR)/,$(GCC_CHANGES))
+       @mkdir -p $(BDIR_GCC)
+       @cd $(BDIR_GCC) && PATH=$(PREFIX)/bin:$$PATH ../../$(GCC_DIR)/configure --target=$(TARGET) --prefix=$(PREFIX) --disable-nls --enable-langs=c,c++ --includedir=$(ACESSDIR)/Usermode/include --libdir=$(ACESSDIR)/Usermode/Output/$(ARCH)/Lib "--with-sysroot=$(PREFIX)"
 
-$(PREFIX)/bin/$(TARGET)-gcc:  $(addprefix $(GCC_DIR)/,$(GCC_CHANGES))
-       @mkdir -p build-gcc-$(ARCH)
-       cd build-gcc-$(ARCH) && PATH=$(PREFIX)/bin:$$PATH ../$(GCC_DIR)/configure --target=$(TARGET) --prefix=$(PREFIX) --disable-nls --enable-langs=c,c++ --includedir=$(ACESSDIR)/Usermode/include --libdir=$(ACESSDIR)/Usermode/Output/$(ARCH)/Lib
-       @cd build-gcc-$(ARCH) && PATH=$(PREFIX)/bin:$$PATH make all-gcc all-target-libgcc install-gcc install-target-libgcc -j $(PARLEVEL)
+$(PREFIX)/bin/$(TARGET)-gcc: $(BDIR_GCC)/Makefile
+       @cd $(BDIR_GCC) && PATH=$(PREFIX)/bin:$$PATH make all-gcc all-target-libgcc install-gcc install-target-libgcc -j $(PARLEVEL)
 
 
index c304125..833fafa 100644 (file)
@@ -1,6 +1,6 @@
 --- gcc/config.gcc
 +++ gcc/config.gcc
-@@ -519,3 +519,9 @@
+@@ -519,3 +519,10 @@
  # Common parts for widely ported systems.
  case ${target} in
 +*-*-acess2*)
@@ -8,6 +8,7 @@
 +  gas=yes
 +  gnu_ld=yes
 +  default_use_cxa_atexit=yes
++  use_gcc_stdint=provide
 +  ;;
  *-*-darwin*)
 
index 708935d..2658548 100644 (file)
@@ -3,6 +3,7 @@
 */\r
 #include <acess/sys.h>\r
 #include <stdio.h>\r
+#include <stdlib.h>\r
 #include <net.h>\r
 #include <readline.h>\r
 #include <string.h>\r
index bf6de99..16dac83 100644 (file)
@@ -8,6 +8,7 @@
 #include <stddef.h>
 #include <net.h>
 #include <stdio.h>
+#include <stdlib.h>
 #include <acess/sys.h>
 
 // === TYPES ===
index c18d04f..bc5edf8 100644 (file)
@@ -17,7 +17,17 @@ DEPFILES := $(addsuffix .dep,$(OBJ))
 
 .PHONY: all clean install postbuild
 
-all: $(_BIN) $(_XBIN)
+all: _libs $(_BIN) $(_XBIN)
+
+.PHONY: _libs
+
+
+HEADERS := $(patsubst include_exp/%,../../include/%,$(shell find include_exp/ -name \*.h))
+_libs: $(HEADERS)
+
+../../include/%: include_exp/%
+       @mkdir -p $(dir $@)
+       @ln -s $(shell pwd)/$< $@
 
 .PHONY: utest utest-build utest-run $(UTESTS:%=runtest-%)
 
index 07b20b3..060f10a 100644 (file)
@@ -8,6 +8,8 @@
 #ifndef _LIBC__ASSERT_H_
 #define _LIBC__ASSERT_H_
 
+extern void exit(int status);
+
 #ifdef NDEBUG
 # define assert(expr)  do{}while(0)
 #else
index 4a81c18..074cd25 100644 (file)
@@ -5,8 +5,9 @@
 #ifndef __STDIO_H
 #define __STDIO_H
 
-#include <stdlib.h>
+#include <sys/types.h>
 #include <stdarg.h>
+#include <stddef.h>    // size_t
 
 /* === Types === */
 typedef struct sFILE   FILE;
@@ -15,6 +16,12 @@ typedef struct sFILE FILE;
 #define EOF    (-1)
 #define BUFSIZ 1024
 
+#ifndef SEEK_CUR
+#define SEEK_CUR       1
+#define SEEK_SET       0
+#define SEEK_END       (-1)
+#endif
+
 /* --- Standard IO --- */
 extern int     printf(const char *format, ...);
 extern int     vsnprintf(char *buf, size_t __maxlen, const char *format, va_list args);
index bd7afce..5d728ce 100644 (file)
@@ -8,7 +8,7 @@
 #ifndef _TIME_H_
 #define _TIME_H_
 
-#include <acess/intdefs.h>
+//#include <acess/intdefs.h>
 #include <sys/types.h> // time_t
 
 struct tm
index 20e796e..6b64fb6 100644 (file)
@@ -4,6 +4,7 @@
 #include "stdio_int.h"\r
 #include "lib.h"\r
 #include <stdio.h>\r
+#include <stdlib.h>\r
 #include <acess/sys.h>\r
 \r
 #define USE_CPUID      0\r
index 9b7aac0..03e24dd 100644 (file)
@@ -3,8 +3,6 @@
 #ifndef _SYS_TYPES_H
 #define _SYS_TYPES_H
 
-#include <stdint.h>
-
 //typedef signed int   ssize_t;
 //#ifdef  __USE_BSD
 typedef unsigned int   u_int;
@@ -21,7 +19,7 @@ typedef long long int off_t;
 
 typedef unsigned int   uint;
 
-#include "stat.h"
+//#include "stat.h"
 #include <acess/fd_set.h>
 
 #endif
index dc44ec6..4d2a1c2 100644 (file)
@@ -10,6 +10,7 @@
 
 #include <sys/types.h>
 #include <stddef.h>    // size_t
+#include <stdint.h>    // uint32_t
 
 typedef uint32_t       socklen_t;
 

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