diff --git a/Makefile.in b/Makefile.in index 76e49a556..b35551ca4 100644 --- a/Makefile.in +++ b/Makefile.in @@ -9,16 +9,18 @@ SUBDIRS = $(KERNDIRS) GIT_VERSION := $(shell git describe --abbrev=6 --dirty --always --tags) TODAY := $(shell date +'%Y%m%d') QEMU = @QEMU@ -machine accel=kvm -cpu host -CROSSDIR = @CROSSDIR@ +CROSSDIR = @prefix@/bin JOBS = $(shell nproc) ARCH_OPT = @ARCH_OPT@ TOOLCHAIN = @TOOLCHAIN@ ifeq ($(TOOLCHAIN),0) BUILD_BOOTSTRAP = BUILD_TOOLCHAIN = +INSTALL_LIBHERMIT = @echo "Library libhermit successfully built." else BUILD_BOOTSTRAP = bootstrap BUILD_TOOLCHAIN = toolchain +INSTALL_LIBHERMIT = make install_libhermit endif prefix = @prefix@ @@ -98,7 +100,7 @@ default: all all: arch/x86/kernel/boot.h $(BUILD_BOOTSTRAP) $(NAME) $(BUILD_TOOLCHAIN) tools loader toolchain: - $Q$(MAKE) ARCH=$(ARCH) \ + $Q$(MAKE) ARCH=$(ARCH) PREFIX=$(prefix) \ LDFLAGS_FOR_TARGET="$(LDFLAGS_FOR_NEWLIB)" \ GOFLAGS_FOR_TARGET="$(GOFLAGS_FOR_NEWLIB)" \ CFLAGS_FOR_TARGET="$(CFLAGS_FOR_NEWLIB)" \ @@ -126,10 +128,10 @@ toolchain: PROFILING_LDFLAGS="$(PROFILING_LDFLAGS)" -C usr toolchain bootstrap: - $Q$(MAKE) ARCH=$(ARCH) CFLAGS="" LDFLAGS="" -C usr bootstrap + $Q$(MAKE) ARCH=$(ARCH) PREFIX=$(prefix) CFLAGS="" LDFLAGS="" -C usr bootstrap tools: - $Q$(MAKE) ARCH=$(ARCH) CFLAGS="$(CFLAGS_FOR_TOOLS)" LDFLAGS="$(LDFLAGS_FOR_TOOLS)" -C tools + $Q$(MAKE) ARCH=$(ARCH) PREFIX=$(prefix) CFLAGS="$(CFLAGS_FOR_TOOLS)" LDFLAGS="$(LDFLAGS_FOR_TOOLS)" -C tools loader: $Q$(MAKE) -C arch/$(ARCH)/loader @@ -138,9 +140,35 @@ $(NAME): @echo [AR] $(NAME) $Q$(AR_FOR_TARGET) $(ARFLAGS) -o $(NAME) $^ $Q$(OBJCOPY_FOR_TARGET) --rename-section .bss=.kbss --rename-section .text=.ktext --rename-section .data=.kdata $(NAME) + $(INSTALL_LIBHERMIT) examples: - $Q$(MAKE) -C usr examples + $Q$(MAKE) ARCH=$(ARCH) PREFIX=$(prefix) \ + LDFLAGS_FOR_TARGET="$(LDFLAGS_FOR_NEWLIB)" \ + GOFLAGS_FOR_TARGET="$(GOFLAGS_FOR_NEWLIB)" \ + CFLAGS_FOR_TARGET="$(CFLAGS_FOR_NEWLIB)" \ + FFLAGS_FOR_TARGET="$(FFLAGS_FOR_NEWLIB)" \ + FCFLAGS_FOR_TARGET="$(FCFLAGS_FOR_NEWLIB)" \ + FCFLAGS="$(FCFLAGS_FOR_NEWLIB)" \ + CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_NEWLIB)" \ + NASMFLAGS="$(NASMFLAGS_FOR_NEWLIB)" \ + CC_FOR_TARGET=$(CC_FOR_TARGET) \ + GO_FOR_TARGET=$(GO_FOR_TARGET) \ + FC_FOR_TARGET=$(FC_FOR_TARGET) \ + CXX_FOR_TARGET=$(CXX_FOR_TARGET) \ + GCC_FOR_TARGET=$(GCC_FOR_TARGET) \ + AR_FOR_TARGET=$(AR_FOR_TARGET) \ + AS_FOR_TARGET=$(AS_FOR_TARGET) \ + LD_FOR_TARGET=$(LD_FOR_TARGET) \ + NM_FOR_TARGET=$(NM_FOR_TARGET) \ + OBJDUMP_FOR_TARGET=$(OBJDUMP_FOR_TARGET) \ + OBJCOPY_FOR_TARGET=$(OBJCOPY_FOR_TARGET) \ + RANLIB_FOR_TARGET=$(RANLIB_FOR_TARGET) \ + STRIP_FOR_TARGET=$(STRIP_FOR_TARGET) \ + ELFEDIT_FOR_TARGET=$(ELFEDIT_FOR_TARGET) \ + READELF_FOR_TARGET=$(READELF_FOR_TARGET) \ + PROFILING_CFLAGS="$(PROFILING_CFLAGS)" \ + PROFILING_LDFLAGS="$(PROFILING_LDFLAGS)" -C usr examples test: demo . ./test.sh @@ -155,8 +183,12 @@ qemu: -device virtio-9p-pci,id=fs0,fsdev=fsdev0,mount_tag=hermit \ -s -install: - $Q$(INSTALL_DATA) $(NAME) $(prefix)/$(TOPDIR)/$(CROSSCOMPREFIX)/lib/ +install_libhermit: + $Q$(INSTALL_DATA) $(NAME) $(prefix)/$(CROSSCOMPREFIX)/lib/ + +install: install_libhermit + $Q$(MAKE) PREFIX=$(prefix) -C usr install + $Q$(INSTALL_PROGRAM) tools/proxy $(prefix)/bin clean: $Q$(RM) $(NAME) $(NAME).sym $(NAME).bin *~ diff --git a/README.md b/README.md index ff943ff4a..ff956e86b 100644 --- a/README.md +++ b/README.md @@ -30,14 +30,16 @@ On Debian-based systems the packets can be installed by executing: 1. Please make sure that you cloned this repository and all its submodules. 2. To configure the system, run the *configure* script in the directory, which contains this *README*. - Fine tuning of the installation directories, e.g., with the flag `--prefix` is currently not supported. - HermitCore, the cross-compiler and the demo applications will be installed in subdirectories of this repository. + With the flag `--with-toolchain`, the HermitCore's complete cross toolchain (cross compiler, binutils, etc.) will be downloaded and built. + **NOTE**: This requires write access to the installation directory, which is specified by the flag `--prefix`. At the end of this *README* in section *Tips* you find hints to enable optimization for the target. -3. The command `make all` build the the HermitCore kernel, the cross-compiler, and the demo applications. -4. To start a virtual machine and to boot a small Linux version use the command `make qemu`. +3. The command `make all` build the the HermitCore kernel and depending on the configuration flags the cross toolchain. +4. Install the kernel with `make install`. +5. Build all example applications with `make examples`. +6. To start a virtual machine and to boot a small Linux version use the command `make qemu`. Per default, the virtual machine has 10 cores, 2 NUMA nodes, and 8 GiB RAM. To increase or to decrease the machine size, the label `qemu` in the Makefile has to be modified accordingly. -5. Inside the VM runs a small Linux system, which already includes the patches for HermitCore. +7. Inside the VM runs a small Linux system, which already includes the patches for HermitCore. Per NUMA node (= HermitCore isle) there is a directory called `isleX` under `/sys/hermit` , where `X` represents the NUMA node ID. The demo applications are located in the directories `/hermit/usr/{tests,benchmarks}`. A HermitCore loader is already registered. @@ -45,18 +47,18 @@ On Debian-based systems the packets can be installed by executing: To change the default behavior, the environment variable `HERMIT_ISLE` is used to specify the (memory) location of the isle, while the environment variable `HERMIT_CPUS` is used to specify the cores. For instance, `HERMIT_ISLE=1 HERMIT_CPUS="3-5" /hermit/usr/tests/hello` starts a HelloWorld demo on the HermitCore isle 1, which uses the cores 3 to 5. The output messages are forwarded to the Linux proxy and printed on the Linux system. -6. HermitCore's kernel messages of `isleX` are available via `cat /sys/hermit/isleX/log`. -7. There is a virtual IP device for the communication between the HermitCore isles and the Linux system (see output of `ifconfig`). +8. HermitCore's kernel messages of `isleX` are available via `cat /sys/hermit/isleX/log`. +9. There is a virtual IP device for the communication between the HermitCore isles and the Linux system (see output of `ifconfig`). Per default, the Linux system has the IP address `192.168.28.1`. The HermitCore isles starts with the IP address `192.168.28.2` for isle 0 and is increased by one for every isle. -8. More HermitCore applications are available at `/hermit/usr/{tests,benchmarks}` which is a shared directory between the host and QEmu. +10. More HermitCore applications are available at `/hermit/usr/{tests,benchmarks}` which is a shared directory between the host and QEmu. ## Building and testing HermitCore as multi-kernel on a real machine *Note*: to launch HermitCore applications, root privileges are required. 1. In principle you have to follow the tutorial above. - After the configuration and building of the cross-compilers (Step 3 in the [above tutorial](#building-and-testing-hermitcore-within-a-virtual-machine)), a modified Linux kernel has to be installed. + After the configuration, building of the cross-compilers and all example application (Step 5 in the [above tutorial](#building-and-testing-hermitcore-within-a-virtual-machine)), a modified Linux kernel has to be installed. Please clone the repository with the [modified Linux kernel](https://github.com/RWTH-OS/linux). Afterwards switch to the branch `hermit` for a relative new vanilla kernel or to `centos`, which is compatible to the current CentOS 7 kernel. Configure the kernel with `make menuconfig` for your system. diff --git a/configure b/configure index 5b048619e..f1dc7a989 100755 --- a/configure +++ b/configure @@ -589,7 +589,6 @@ ac_subst_vars='LTLIBOBJS LIBOBJS TOOLCHAIN ARCH_OPT -CROSSDIR INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM @@ -2751,9 +2750,6 @@ $as_echo "#define DYNAMIC_TICKS 1" >>confdefs.h #AC_DEFINE(SAVE_FPU, 1, Set task switched flag during a context switch); -CROSSDIR=`pwd`/usr/x86/bin - - # Check whether --with-mtune was given. if test "${with_mtune+set}" = set; then : diff --git a/configure.ac b/configure.ac index 721170ff9..6b0ae9e16 100644 --- a/configure.ac +++ b/configure.ac @@ -32,9 +32,6 @@ AC_DEFINE(VIDEO_MEM_ADDR, 0xB8000, Definition of the VGA address) AC_DEFINE(DYNAMIC_TICKS, 1, Use a dynamic tick instead of a static) #AC_DEFINE(SAVE_FPU, 1, Set task switched flag during a context switch); -CROSSDIR=`pwd`/usr/x86/bin -AC_SUBST(CROSSDIR) - AC_ARG_WITH([mtune], [AS_HELP_STRING([--with-mtune=ARCH], [enable tuning for a specific architecture])], diff --git a/debian/rules b/debian/rules index d2a908ed7..73b88abe3 100755 --- a/debian/rules +++ b/debian/rules @@ -30,3 +30,12 @@ override_dh_auto_test: override_dh_auto_install: mkdir -p debian/libhermit/opt/hermit/x86_64-hermit/lib /usr/bin/install -c -m 644 libhermit.a debian/libhermit/opt/hermit/x86_64-hermit/lib + /usr/bin/install -c -m 644 usr/ircce/libircce.a debian/libhermit/opt/hermit/x86_64-hermit/lib + /usr/bin/install -c -m 644 usr/ircce/*.h debian/libhermit/opt/hermit/x86_64-hermit/include + /usr/bin/install -c -m 644 usr/ircce/libxray.a debian/libhermit/opt/hermit/x86_64-hermit/lib + /usr/bin/install -c -m 644 usr/ircce/libxray.spec debian/libhermit/opt/hermit/x86_64-hermit/lib + /usr/bin/install -c -m 644 usr/ircce/libxray.h debian/libhermit/opt/hermit/x86_64-hermit/include + /usr/bin/install -c -m 644 usr/libomp/libiomp.h debian/libhermit/opt/hermit/x86_64-hermit/lib + /usr/bin/install -c -m 644 usr/libomp/libgomp.spec debian/libhermit/opt/hermit/x86_64-hermit/lib + /usr/bin/install -c -m 644 usr/libomp/src/omp.h debian/libhermit/opt/hermit/x86_64-hermit/include + /usr/bin/install -c tools/proxy debian/libhermit/opt/hermit/bin diff --git a/usr/Makefile b/usr/Makefile index 6b9bae2ee..42fad59a5 100644 --- a/usr/Makefile +++ b/usr/Makefile @@ -6,7 +6,7 @@ NJOBS=-j$(shell nproc) OMPRT=libomp CROSSCOMPREFIX = x86_64-hermit -NEWLIB = $(TOPDIR)/$(ARCH)/$(TARGET) +PREFIX = /opt/hermit RM = rm -rf CD = cd CP = cp @@ -23,12 +23,6 @@ ifeq ($V,0) P = > /dev/null endif -# Avoid output on TravisCI -T = 0 -ifeq ($T,1) - TP = > /dev/null -endif - default: @echo Do not use default rule! @@ -41,10 +35,7 @@ examples: #$Q$(MAKE) ELFEDIT_FOR_TARGET=$(ELFEDIT_FOR_TARGET) CC_FOR_TARGET=$(CC_FOR_TARGET) CXX_FOR_TARGET=$(CXX_FOR_TARGET) CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" LDFLAGS_FOR_TARGET="$(LDFLAGS_FOR_TARGET)" OBJCOPY_FOR_TARGET=$(OBJCOPY_FOR_TARGET) -C openmpbench depend $Q$(MAKE) ELFEDIT_FOR_TARGET=$(ELFEDIT_FOR_TARGET) CC_FOR_TARGET=$(CC_FOR_TARGET) CXX_FOR_TARGET=$(CXX_FOR_TARGET) CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET) $(PROFILING_CFLAGS)" LDFLAGS_FOR_TARGET="$(LDFLAGS_FOR_TARGET) $(PROFILING_LDFLAGS)" OBJCOPY_FOR_TARGET=$(OBJCOPY_FOR_TARGET) -C openmpbench -$(ARCH): - $Q$(MKDIR) $(TMP) - -bootstrap: binutils gcc newlib pte $(ARCH) $(TMP)/binutils $(TMP)/bootstrap +bootstrap: binutils gcc newlib pte $(TMP)/binutils $(TMP)/bootstrap binutils: git clone $(CLONE_DEPTH) https://github.com/RWTH-OS/binutils.git @@ -54,7 +45,7 @@ gcc: pte: git clone $(CLONE_DEPTH) https://github.com/RWTH-OS/pthread-embedded.git pte - $Q$(CD) pte; ./configure + $Q$(CD) pte; ./configure --prefix=$(PREFIX) newlib: git clone $(CLONE_DEPTH) https://github.com/RWTH-OS/newlib.git @@ -62,43 +53,49 @@ newlib: $(TMP)/binutils: @echo Build binutils $Q$(MKDIR) $(TMP)/binutils - $Q$(CD) $(TMP)/binutils; $(TOPDIR)/binutils/configure --target=$(TARGET) --prefix=$(TOPDIR)/$(ARCH) --disable-multilib --disable-shared --disable-nls --disable-gdb --disable-libdecnumber --disable-readline --disable-sim --disable-libssp --enable-tls && $(MAKE) $(NJOBS) && $(MAKE) install + $Q$(CD) $(TMP)/binutils; $(TOPDIR)/binutils/configure --target=$(TARGET) --prefix=$(PREFIX) --disable-multilib --disable-shared --disable-nls --disable-gdb --disable-libdecnumber --disable-readline --disable-sim --disable-libssp --enable-tls && $(MAKE) $(NJOBS) && $(MAKE) install $(TMP)/bootstrap: @echo Build bootstrap compiler $Q$(MKDIR) $(TMP)/bootstrap - $Q$(CD) $(TMP)/bootstrap; $(TOPDIR)/gcc/configure --target=$(TARGET) --prefix=$(TOPDIR)/$(ARCH) --without-headers --disable-multilib --with-isl --with-tune=generic --enable-languages=c,c++,lto --disable-nls --disable-shared --disable-libssp --disable-libgomp --enable-threads=posix --enable-tls --enable-lto --disable-symvers && $(MAKE) $(NJOBS) all-gcc $(TP) && $(MAKE) install-gcc $(TP) + $Q$(CD) $(TMP)/bootstrap; $(TOPDIR)/gcc/configure --target=$(TARGET) --prefix=$(PREFIX) --without-headers --disable-multilib --with-isl --with-tune=generic --enable-languages=c,lto --disable-nls --disable-shared --disable-libssp --disable-libgomp --enable-threads=posix --enable-tls --enable-lto --disable-symvers && $(MAKE) $(NJOBS) all-gcc && $(MAKE) install-gcc toolchain: $(TMP)/newlib libpthread $(TMP)/gcc libs $(TMP)/newlib: @echo Build newlib $Q$(MKDIR) $(TMP)/newlib - $Q$(CD) $(TMP)/newlib; $(TOPDIR)/newlib/configure --target=$(TARGET) --prefix=$(TOPDIR)/$(ARCH) $(OPT) && $(MAKE) $(NJOBS) && $(MAKE) install + $Q$(CD) $(TMP)/newlib; $(TOPDIR)/newlib/configure --target=$(TARGET) --prefix=$(PREFIX) $(OPT) && $(MAKE) $(NJOBS) && $(MAKE) install libpthread: @echo Build libpthread $Q$(MAKE) TARGET=$(TARGET) CC_FOR_TARGET=$(CC_FOR_TARGET) AR_FOR_TARGET=$(AR_FOR_TARGET) CFLAGS_FOR_TARGET+="-I. -Iplatform/hermit -Iplatform/helper -Wall $(PROFILING_CFLAGS)" -C pte depend $Q$(MAKE) TARGET=$(TARGET) CC_FOR_TARGET=$(CC_FOR_TARGET) AR_FOR_TARGET=$(AR_FOR_TARGET) CFLAGS_FOR_TARGET+="-I. -Iplatform/hermit -Iplatform/helper -Wall $(PROFILING_CFLAGS)" -C pte - $Q$(CP) pte/libpthread.a $(TOPDIR)/$(ARCH)/x86_64-hermit/lib/ + $Q$(MAKE) TARGET=$(TARGET) CC_FOR_TARGET=$(CC_FOR_TARGET) AR_FOR_TARGET=$(AR_FOR_TARGET) CFLAGS_FOR_TARGET+="-I. -Iplatform/hermit -Iplatform/helper -Wall $(PROFILING_CFLAGS)" -C pte install + $Q$(MAKE) TARGET=$(TARGET) CC_FOR_TARGET=$(CC_FOR_TARGET) AR_FOR_TARGET=$(AR_FOR_TARGET) CFLAGS_FOR_TARGET+="-I. -Iplatform/hermit -Iplatform/helper -Wall $(PROFILING_CFLAGS)" -C pte headers libs: @echo Build Xray profiler - $Q$(MAKE) TARGET=$(TARGET) CC_FOR_TARGET=$(CC_FOR_TARGET) CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" LDFLAGS_FOR_TARGET="$(LDFLAGS_FOR_TARGET)" -C xray + $Q$(MAKE) TARGET=$(TARGET) CC_FOR_TARGET=$(CC_FOR_TARGET) CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" LDFLAGS_FOR_TARGET="$(LDFLAGS_FOR_TARGET)" PREFIX=$(PREFIX) -C xray @echo Build OpenMP Runtime and iRCCE - $Q$(MAKE) TARGET=$(TARGET) CXX_FOR_TARGET=$(CXX_FOR_TARGET) CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" CC_FOR_TARGET=$(CC_FOR_TARGET) AR_FOR_TARGET=$(AR_FOR_TARGET) CFLAGS_FOR_TARGET+="-I. -Wall -pthread $(PROFILING_CFLAGS)" -C $(OMPRT) depend - $Q$(MAKE) TARGET=$(TARGET) CXX_FOR_TARGET=$(CXX_FOR_TARGET) CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" CC_FOR_TARGET=$(CC_FOR_TARGET) AR_FOR_TARGET=$(AR_FOR_TARGET) CFLAGS_FOR_TARGET+="-I. -Wall -pthread $(PROFILING_CFLAGS)" -C $(OMPRT) - $Q$(MAKE) TARGET=$(TARGET) CC_FOR_TARGET=$(CC_FOR_TARGET) AR_FOR_TARGET=$(AR_FOR_TARGET) CFLAGS_FOR_TARGET+="-I. -Wall" -C ircce depend - $Q$(MAKE) TARGET=$(TARGET) CC_FOR_TARGET=$(CC_FOR_TARGET) AR_FOR_TARGET=$(AR_FOR_TARGET) CFLAGS_FOR_TARGET+="-I. -Wall" -C ircce + $Q$(MAKE) TARGET=$(TARGET) CXX_FOR_TARGET=$(CXX_FOR_TARGET) CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" CC_FOR_TARGET=$(CC_FOR_TARGET) AR_FOR_TARGET=$(AR_FOR_TARGET) CFLAGS_FOR_TARGET+="-I. -Wall -pthread $(PROFILING_CFLAGS)" PREFIX=$(PREFIX) -C $(OMPRT) depend + $Q$(MAKE) TARGET=$(TARGET) CXX_FOR_TARGET=$(CXX_FOR_TARGET) CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" CC_FOR_TARGET=$(CC_FOR_TARGET) AR_FOR_TARGET=$(AR_FOR_TARGET) CFLAGS_FOR_TARGET+="-I. -Wall -pthread $(PROFILING_CFLAGS)" PREFIX=$(PREFIX) -C $(OMPRT) + $Q$(MAKE) TARGET=$(TARGET) CC_FOR_TARGET=$(CC_FOR_TARGET) AR_FOR_TARGET=$(AR_FOR_TARGET) CFLAGS_FOR_TARGET+="-I. -Wall" PREFIX=$(PREFIX) -C ircce depend + $Q$(MAKE) TARGET=$(TARGET) CC_FOR_TARGET=$(CC_FOR_TARGET) AR_FOR_TARGET=$(AR_FOR_TARGET) CFLAGS_FOR_TARGET+="-I. -Wall" PREFIX=$(PREFIX) -C ircce + +install: + $Q$(MAKE) PREFIX=$(PREFIX) -C xray install + $Q$(MAKE) PREFIX=$(PREFIX) -C ircce install + $Q$(MAKE) PREFIX=$(PREFIX) -C $(OMPRT) install $(TMP)/gcc: @echo Build final gcc $Q$(MKDIR) $(TMP)/gcc - $Q$(CD) $(TMP)/gcc; $(TOPDIR)/gcc/configure --target=$(TARGET) --prefix=$(TOPDIR)/$(ARCH) --with-newlib --with-isl --disable-multilib --with-tune=generic --enable-languages=c,c++,lto --disable-nls --disable-shared --disable-libssp --enable-threads=posix --disable-libgomp --enable-tls --enable-lto --disable-symvers && $(MAKE) $(NJOBS) $(TP) && $(MAKE) install $(TP) + $Q$(CD) $(TMP)/gcc; $(TOPDIR)/gcc/configure --target=$(TARGET) --prefix=$(PREFIX) --with-newlib --with-isl --disable-multilib --without-libatomic --with-tune=generic --enable-languages=c,c++,lto --disable-nls --disable-shared --disable-libssp --enable-threads=posix --disable-libgomp --enable-tls --enable-lto --disable-symvers && $(MAKE) $(NJOBS) && $(MAKE) install $Q$(RM) $(TMP)/gcc $Q$(MKDIR) $(TMP)/gcc - $Q$(CD) $(TMP)/gcc; $(TOPDIR)/gcc/configure --target=$(TARGET) --prefix=$(TOPDIR)/$(ARCH) --with-newlib --with-isl --disable-multilib --without-libatomic --with-tune=generic --enable-languages=c,c++,go,fortran,lto --disable-nls --disable-shared --disable-libssp --enable-threads=posix --disable-libgomp --enable-tls --enable-lto --disable-symvers && $(MAKE) $(NJOBS) $(TP) && $(MAKE) install $(TP) + $Q$(CD) $(TMP)/gcc; $(TOPDIR)/gcc/configure --target=$(TARGET) --prefix=$(PREFIX) --with-newlib --with-isl --disable-multilib --without-libatomic --with-tune=generic --enable-languages=c,c++,go,fortran,lto --disable-nls --disable-shared --disable-libssp --enable-threads=posix --disable-libgomp --enable-tls --enable-lto --disable-symvers && $(MAKE) $(NJOBS) && $(MAKE) install clean: @echo Cleaning toolchain @@ -117,7 +114,6 @@ veryclean: $Q$(MAKE) -C benchmarks veryclean $Q$(MAKE) -C openmpbench veryclean $Q$(RM) binutils gcc newlib pte - $Q$(RM) $(TOPDIR)/$(ARCH) $Q$(RM) $(TMP) .PHONY: default all clean veryclean headers libpthread libs diff --git a/usr/ircce/Makefile b/usr/ircce/Makefile index 8c5352c45..94abecf44 100644 --- a/usr/ircce/Makefile +++ b/usr/ircce/Makefile @@ -1,4 +1,4 @@ -NEWLIB = ../x86/x86_64-hermit +CROSSPREFIX = x86_64-hermit MAKE = make ARFLAGS_FOR_TARGET = rsv CP = cp @@ -25,8 +25,10 @@ all: $(NAME) $(NAME): $(OBJS) $Q$(AR_FOR_TARGET) $(ARFLAGS_FOR_TARGET) $@ $(OBJS) - $Q$(CP) $@ $(NEWLIB)/lib - $Q$(CP) *.h $(NEWLIB)/include + +install: + $Q$(CP) $(NAME) $(PREFIX)/$(CROSSPREFIX)/lib + $Q$(CP) *.h $(PREFIX)/$(CROSSPREFIX)/include clean: @echo Cleaning examples diff --git a/usr/libomp b/usr/libomp index fd7fc3288..b686c65c3 160000 --- a/usr/libomp +++ b/usr/libomp @@ -1 +1 @@ -Subproject commit fd7fc3288ddb0ef2b960469c83e00e3e32e99e70 +Subproject commit b686c65c3234365fd4c610be74ece5c3a5195658 diff --git a/usr/xray/Makefile b/usr/xray/Makefile index 369ead594..4e4bc0997 100644 --- a/usr/xray/Makefile +++ b/usr/xray/Makefile @@ -1,4 +1,4 @@ -NEWLIB = ../x86/x86_64-hermit +CROSSPREFIX = x86_64-hermit CP = cp NAME = libxray.a @@ -14,9 +14,11 @@ OBJS = xray.o stringpool.o hashtable.o symtable.o demangle.o parsesymbols.o repo $(NAME): $(OBJS) $(AR_FOR_TARGET) rsv $@ $(OBJS) - $(CP) $@ $(NEWLIB)/lib - $(CP) libxray.spec $(NEWLIB)/lib - $(CP) xray.h $(NEWLIB)/include + +install: $(NAME) + $(CP) $(NAME) $(PREFIX)/$(CROSSPREFIX)/lib + $(CP) libxray.spec $(PREFIX)/$(CROSSPREFIX)/lib + $(CP) xray.h $(PREFIX)/$(CROSSPREFIX)/include %.o: %.c @echo [CC] $@