From 8e2707b81b0c90295c9fdf92a576925442d22147 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Wed, 20 Aug 2014 21:11:13 +0200 Subject: add sash, simpleinit and a uclibc config for nonmmu case --- target/config/Config.in | 2 + target/config/Config.in.runtime | 16 +++++++- target/m68k/uclibc-ng.config | 5 +-- target/m68k/uclibc.config | 81 ++++++++++++++++++++++------------------- 4 files changed, 61 insertions(+), 43 deletions(-) (limited to 'target') diff --git a/target/config/Config.in b/target/config/Config.in index 38f8090dd..3982b9cc9 100644 --- a/target/config/Config.in +++ b/target/config/Config.in @@ -16,6 +16,8 @@ config ADK_TARGET_TOOLCHAIN config ADK_TARGET_UCLINUX select ADK_TARGET_USE_STATIC_LIBS + select ADK_PACKAGE_SASH + select ADK_PACKAGE_SIMPLEINIT boolean config ADK_TARGET_QEMU diff --git a/target/config/Config.in.runtime b/target/config/Config.in.runtime index 845786a45..2caec15ec 100644 --- a/target/config/Config.in.runtime +++ b/target/config/Config.in.runtime @@ -150,7 +150,7 @@ config ADK_RUNTIME_KBD_LAYOUT choice prompt "initial login shell for the root user" -default ADK_ROOTSH_HUSH if ADK_TARGET_UCLINUX +default ADK_ROOTSH_SASH if ADK_TARGET_UCLINUX default ADK_ROOTSH_MKSH config ADK_ROOTSH_MKSH @@ -160,6 +160,12 @@ config ADK_ROOTSH_MKSH Use mksh (a Korn Shell variant) as standard login shell for the superuser. +config ADK_ROOTSH_SASH + select ADK_PACKAGE_SASH if !ADK_TOOLCHAIN_ONLY + bool "sash (Shell compatible with non-MMU systems)" + help + standalone shell. + config ADK_ROOTSH_HUSH select ADK_PACKAGE_HUSH if !ADK_TOOLCHAIN_ONLY bool "hush (Shell compatible with non-MMU systems)" @@ -197,7 +203,7 @@ endchoice choice prompt "system /bin/sh (POSIX script shell)" -default ADK_BINSH_HUSH if ADK_TARGET_UCLINUX +default ADK_BINSH_SASH if ADK_TARGET_UCLINUX default ADK_BINSH_MKSH config ADK_BINSH_MKSH @@ -207,6 +213,12 @@ config ADK_BINSH_MKSH Use mksh (a Korn Shell variant) as system shell, which is both small and powerful, so quite suited for this task. +config ADK_BINSH_SASH + select ADK_PACKAGE_SASH if !ADK_TOOLCHAIN_ONLY + bool "sash (Standalone Shell)" + help + hush shell. + config ADK_BINSH_HUSH select ADK_PACKAGE_HUSH if !ADK_TOOLCHAIN_ONLY bool "hush (busybox)" diff --git a/target/m68k/uclibc-ng.config b/target/m68k/uclibc-ng.config index c3225505d..2ca37cc90 100644 --- a/target/m68k/uclibc-ng.config +++ b/target/m68k/uclibc-ng.config @@ -54,9 +54,8 @@ UCLIBC_HAS_THREADS=y # PTHREADS_DEBUG_SUPPORT is not set UCLIBC_HAS_SYSLOG=y UCLIBC_HAS_LFS=y -MALLOC=y -# MALLOC_SIMPLE is not set -MALLOC_GLIBC_COMPAT=y +MALLOC_SIMPLE=y +# MALLOC_GLIBC_COMPAT is not set UCLIBC_HAS_OBSTACK=y UCLIBC_DYNAMIC_ATEXIT=y UCLIBC_SUSV2_LEGACY=y diff --git a/target/m68k/uclibc.config b/target/m68k/uclibc.config index 54e6f6322..2612dfe40 100644 --- a/target/m68k/uclibc.config +++ b/target/m68k/uclibc.config @@ -1,19 +1,32 @@ # -# Automatically generated file; DO NOT EDIT. -# uClibc-ng 1.0.0 C Library Configuration +# Automatically generated make config: don't edit +# Version: 0.9.33.2 +# Mon Aug 18 18:48:15 2014 # # TARGET_alpha is not set -# TARGET_arc is not set # TARGET_arm is not set +# TARGET_avr32 is not set # TARGET_bfin is not set +# TARGET_c6x is not set +# TARGET_cris is not set +# TARGET_e1 is not set +# TARGET_frv is not set +# TARGET_h8300 is not set +# TARGET_hppa is not set # TARGET_i386 is not set +# TARGET_i960 is not set +# TARGET_ia64 is not set TARGET_m68k=y -# TARGET_metag is not set # TARGET_microblaze is not set # TARGET_mips is not set +# TARGET_nios is not set +# TARGET_nios2 is not set # TARGET_powerpc is not set # TARGET_sh is not set +# TARGET_sh64 is not set # TARGET_sparc is not set +# TARGET_v850 is not set +# TARGET_vax is not set # TARGET_x86_64 is not set # TARGET_xtensa is not set @@ -23,58 +36,48 @@ TARGET_m68k=y TARGET_ARCH="m68k" FORCE_OPTIONS_FOR_ARCH=y TARGET_SUBARCH="" - -# -# Using ELF file format -# -ARCH_HAS_DEPRECATED_SYSCALLS=y +# UCLIBC_FORMAT_ELF is not set +# UCLIBC_FORMAT_FDPIC_ELF is not set +# UCLIBC_FORMAT_DSBT_ELF is not set +# UCLIBC_FORMAT_FLAT is not set +UCLIBC_FORMAT_FLAT_SEP_DATA=y +# UCLIBC_FORMAT_SHARED_FLAT is not set ARCH_BIG_ENDIAN=y # # Using Big Endian # -ARCH_HAS_MMU=y -ARCH_USE_MMU=y +# ARCH_HAS_MMU is not set UCLIBC_HAS_FLOATS=y -UCLIBC_HAS_FPU=y +# UCLIBC_HAS_FPU is not set +UCLIBC_HAS_SOFT_FLOAT=y DO_C99_MATH=y # DO_XSI_MATH is not set UCLIBC_HAS_FENV=y UCLIBC_HAS_LONG_DOUBLE_MATH=y KERNEL_HEADERS="" +UCLIBC_UCLINUX_BROKEN_MUNMAP=y HAVE_DOT_CONFIG=y # # General Library Settings # DOPIC=y -HAVE_SHARED=y -# FORCE_SHAREABLE_TEXT_SEGMENTS is not set -LDSO_LDD_SUPPORT=y -LDSO_CACHE_SUPPORT=y -LDSO_PRELOAD_ENV_SUPPORT=y -# LDSO_PRELOAD_FILE_SUPPORT is not set -LDSO_BASE_FILENAME="ld.so" -# LDSO_STANDALONE_SUPPORT is not set -# LDSO_PRELINK_SUPPORT is not set -UCLIBC_STATIC_LDCONFIG=y -LDSO_RUNPATH=y -LDSO_SAFE_RUNPATH=y -LDSO_SEARCH_INTERP_PATH=y -LDSO_LD_LIBRARY_PATH=y -# LDSO_NO_CLEANUP is not set -# LDSO_GNU_HASH_SUPPORT is not set +ARCH_HAS_NO_SHARED=y +ARCH_HAS_NO_LDSO=y +UCLIBC_CTOR_DTOR=y HAS_NO_THREADS=y +# LINUXTHREADS_OLD is not set +# LINUXTHREADS_NEW is not set # UCLIBC_HAS_THREADS_NATIVE is not set UCLIBC_HAS_SYSLOG=y UCLIBC_HAS_LFS=y -# MALLOC is not set +MALLOC=y # MALLOC_SIMPLE is not set -MALLOC_STANDARD=y +# MALLOC_STANDARD is not set MALLOC_GLIBC_COMPAT=y -UCLIBC_HAS_OBSTACK=y UCLIBC_DYNAMIC_ATEXIT=y -UCLIBC_SUSV2_LEGACY=y +# COMPAT_ATEXIT is not set UCLIBC_SUSV3_LEGACY=y # UCLIBC_SUSV3_LEGACY_MACROS is not set UCLIBC_SUSV4_LEGACY=y @@ -104,6 +107,8 @@ UCLIBC_GRP_BUFFER_SIZE=256 # # Support various families of functions # +UCLIBC_LINUX_MODULE_26=y +# UCLIBC_LINUX_MODULE_24 is not set UCLIBC_LINUX_SPECIFIC=y UCLIBC_HAS_GNU_ERROR=y UCLIBC_BSD_SPECIFIC=y @@ -125,6 +130,7 @@ UCLIBC_HAS_NETWORK_SUPPORT=y UCLIBC_HAS_SOCKET=y UCLIBC_HAS_IPV4=y UCLIBC_HAS_IPV6=y +# UCLIBC_HAS_RPC is not set UCLIBC_USE_NETLINK=y UCLIBC_SUPPORT_AI_ADDRCONFIG=y UCLIBC_HAS_BSD_RES_CLOSE=y @@ -149,6 +155,8 @@ UCLIBC_HAS_WCHAR=y UCLIBC_HAS_HEXADECIMAL_FLOATS=y UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9 +# UCLIBC_HAS_SCANF_GLIBC_A_FLAG is not set +# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set # UCLIBC_HAS_STDIO_BUFSIZ_256 is not set # UCLIBC_HAS_STDIO_BUFSIZ_512 is not set # UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set @@ -178,7 +186,9 @@ UCLIBC_HAS_GNU_GETSUBOPT=y # Big and Tall # UCLIBC_HAS_REGEX=y +# UCLIBC_HAS_REGEX_OLD is not set UCLIBC_HAS_FNMATCH=y +# UCLIBC_HAS_FNMATCH_OLD is not set UCLIBC_HAS_WORDEXP=y UCLIBC_HAS_NFTW=y UCLIBC_HAS_FTW=y @@ -199,10 +209,7 @@ HARDWIRED_ABSPATH=y # Security options # UCLIBC_HAS_ARC4RANDOM=y -# ARC4RANDOM_USES_NODEV is not set # UCLIBC_HAS_SSP is not set -UCLIBC_BUILD_RELRO=y -# UCLIBC_BUILD_NOW is not set UCLIBC_BUILD_NOEXECSTACK=y # @@ -213,10 +220,8 @@ UCLIBC_EXTRA_CFLAGS="" # DODEBUG is not set # DOSTRIP is not set # DOASSERTS is not set -# SUPPORT_LD_DEBUG is not set -# SUPPORT_LD_DEBUG_EARLY is not set # UCLIBC_MALLOC_DEBUGGING is not set -# UCLIBC_HAS_BACKTRACE is not set WARNINGS="-Wall" EXTRA_WARNINGS=y # DOMULTI is not set +# UCLIBC_MJN3_ONLY is not set -- cgit v1.2.3 From 9d6eef9b39547d230d5a7cb871735bae71f5fd55 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Tue, 26 Aug 2014 12:28:55 +0200 Subject: we need to remove crtbegin.o/crtend.o from gcc specs file. otherwise broken executables (f.e. sash) with a wrong data start are created by elf2flt) --- mk/kernel-vars.mk | 2 +- mk/vars.mk | 9 +- package/simpleinit/Makefile | 4 + package/simpleinit/files/inittab | 2 + package/simpleinit/files/rc | 54 ++------ package/uclibc/Makefile | 2 +- target/config/Config.in | 1 - target/config/Config.in.target | 2 +- target/m68k/uclibc.config | 18 +-- toolchain/elf2flt/Makefile | 2 +- toolchain/gcc/Makefile | 8 ++ toolchain/gcc/m68k-uclinux-gcc.specs | 147 +++++++++++++++++++++ toolchain/gcc/patches/4.8.3/disable-tm.m68k | 14 ++ .../0007-disable-test-for-non-MMU-systems.patch | 30 +++++ ...0008-disable-test-for-systems-without-FPU.patch | 30 +++++ 15 files changed, 266 insertions(+), 59 deletions(-) create mode 100644 package/simpleinit/files/inittab create mode 100644 toolchain/gcc/m68k-uclinux-gcc.specs create mode 100644 toolchain/gcc/patches/4.8.3/disable-tm.m68k create mode 100644 toolchain/uclibc/patches/0.9.33.2/0007-disable-test-for-non-MMU-systems.patch create mode 100644 toolchain/uclibc/patches/0.9.33.2/0008-disable-test-for-systems-without-FPU.patch (limited to 'target') diff --git a/mk/kernel-vars.mk b/mk/kernel-vars.mk index e9771855e..17a8d23a2 100644 --- a/mk/kernel-vars.mk +++ b/mk/kernel-vars.mk @@ -17,4 +17,4 @@ else KERNEL_MAKE_OPTS+= HOSTCFLAGS='${HOST_CFLAGS}' endif -KERNEL_MAKE_ENV:= PATH="${STAGING_HOST_DIR}/usr/bin:$$PATH" +KERNEL_MAKE_ENV:= PATH="${TOOLCHAIN_DIR}/usr/bin:${STAGING_HOST_DIR}/usr/bin:$$PATH" diff --git a/mk/vars.mk b/mk/vars.mk index 443d42139..c6971ee83 100644 --- a/mk/vars.mk +++ b/mk/vars.mk @@ -74,8 +74,13 @@ ifneq ($(strip ${ADK_USE_CCACHE}),) TARGET_COMPILER_PREFIX=$(STAGING_HOST_DIR)/usr/bin/ccache ${TARGET_CROSS} endif +# use a gcc wrapper for uClinux +ifeq ($(ADK_TARGET_UCLINUX),y) +TARGET_CC:= adk-uclinux-gcc +else # target tools TARGET_CC:= ${TARGET_COMPILER_PREFIX}gcc +endif TARGET_CXX:= ${TARGET_COMPILER_PREFIX}g++ TARGET_LD:= ${TARGET_COMPILER_PREFIX}ld TARGET_AR:= ${TARGET_COMPILER_PREFIX}ar @@ -94,8 +99,8 @@ TARGET_LDFLAGS:= -L$(STAGING_TARGET_DIR)/lib -L$(STAGING_TARGET_DIR)/usr/lib \ -Wl,-rpath-link -Wl,${STAGING_TARGET_DIR}/usr/lib ifeq ($(ADK_TARGET_BINFMT_FLAT),y) -TARGET_CFLAGS+= -Wl,-elf2flt -msep-data -TARGET_CXXFLAGS+= -Wl,-elf2flt -msep-data +TARGET_CFLAGS+= -msep-data +TARGET_CXXFLAGS+= -msep-data TARGET_LDFLAGS+= -elf2flt endif diff --git a/package/simpleinit/Makefile b/package/simpleinit/Makefile index aeeedfc08..43ea68660 100644 --- a/package/simpleinit/Makefile +++ b/package/simpleinit/Makefile @@ -20,10 +20,14 @@ BUILD_STYLE:= manual INSTALL_STYLE:= manual do-build: + PATH="${TOOLCHAIN_DIR}/usr/bin:$$PATH" \ ${TARGET_CC} ${TARGET_CPPFLAGS} ${TARGET_CFLAGS} ${TARGET_LDFLAGS} \ -o ${WRKBUILD}/simpleinit ${WRKBUILD}/simpleinit.c do-install: + ${INSTALL_DIR} ${IDIR_SIMPLEINIT}/etc + ${CP} ./files/rc ${IDIR_SIMPLEINIT}/etc + ${CP} ./files/inittab ${IDIR_SIMPLEINIT}/etc ${INSTALL_DIR} ${IDIR_SIMPLEINIT}/sbin ${INSTALL_BIN} ${WRKBUILD}/simpleinit ${IDIR_SIMPLEINIT}/sbin/init diff --git a/package/simpleinit/files/inittab b/package/simpleinit/files/inittab new file mode 100644 index 000000000..1c4744d6a --- /dev/null +++ b/package/simpleinit/files/inittab @@ -0,0 +1,2 @@ +# example +#inet:unknown:/bin/inetd diff --git a/package/simpleinit/files/rc b/package/simpleinit/files/rc index 33d60a4b6..ec8ace337 100755 --- a/package/simpleinit/files/rc +++ b/package/simpleinit/files/rc @@ -1,47 +1,15 @@ #!/bin/sh -set -x -export PATH=/bin:/sbin:/usr/bin:/usr/sbin -ln -s /proc/self/fd/2 /dev/stderr -: ${rcquiet=0} -if [ $rcquiet -ne 1 ];then - echo "System initialization ..." -fi - -# remount /dev with smaller size -mount -o remount,nosuid,size=128k,mode=0755 -t tmpfs mdev /dev - -# start mdev dynamic device node management -echo >/dev/mdev.seq -if [ -f /proc/sys/kernel/hotplug ];then - echo "/sbin/mdev" >/proc/sys/kernel/hotplug -fi -# creates f.e. /dev/root -mdev -s - -# seed some random -cat /etc/.rnd >/dev/urandom 2>&1 - -# setup cfgfs -[ -x /sbin/cfgfs ] && { - cfgfs setup - mount -o remount,ro / -} - -# remount /tmp with smaller size -size=$(cat /etc/tmpfs 2>/dev/null) -[ -z $size ] && size=2048 -mount -o remount,nosuid,nodev,mode=1777,size=${size}k -t tmpfs tmpfs /tmp - -# create some useful directories in tmpfs +echo Starting OpenADK +hostname openadk +mount -t proc proc /proc +mount -t sysfs sys /sys +mkdir -m 755 /dev/pts +mount -t devpts devpts /dev/pts +mount -t tmpfs -o size=8M tmpfs /tmp +chmod 1777 /tmp mkdir -p /var/log mkdir -p /var/run mkdir -p /var/tmp -touch /var/log/lastlog -touch /var/log/wtmp - -HOSTNAME= -[[ -s /etc/hostname ]] && HOSTNAME=$(cat /etc/hostname) -HOSTNAME=${HOSTNAME%%.*} -echo ${HOSTNAME:=openadk} >/proc/sys/kernel/hostname - -chown 0:0 /tmp; chmod 1777 /tmp +mdev -s +mount +ifconfig lo 127.0.0.1 up diff --git a/package/uclibc/Makefile b/package/uclibc/Makefile index 9b2fa1da1..c148a19d8 100644 --- a/package/uclibc/Makefile +++ b/package/uclibc/Makefile @@ -34,7 +34,7 @@ do-install: test -z $(ADK_RUNTIME_TIMEZONE) || \ grep $(ADK_RUNTIME_TIMEZONE) ./files/tz.lst | \ cut -f 2 > $(IDIR_UCLIBC)/etc/TZ -ifneq ($(ADK_TARGET_USE_STATIC_LIBS),y) +ifneq ($(ADK_TARGET_USE_STATIC_LIBS)$(ADK_TARGET_UCLINUX),y) $(CP) $(STAGING_TARGET_DIR)/lib/libc.so.* $(IDIR_UCLIBC)/$(ADK_TARGET_LIBC_PATH) $(CP) $(STAGING_TARGET_DIR)/lib/libuClibc-$(PKG_VERSION).so \ $(IDIR_UCLIBC)/$(ADK_TARGET_LIBC_PATH) diff --git a/target/config/Config.in b/target/config/Config.in index 3982b9cc9..7393bfe9c 100644 --- a/target/config/Config.in +++ b/target/config/Config.in @@ -15,7 +15,6 @@ config ADK_TARGET_TOOLCHAIN boolean config ADK_TARGET_UCLINUX - select ADK_TARGET_USE_STATIC_LIBS select ADK_PACKAGE_SASH select ADK_PACKAGE_SIMPLEINIT boolean diff --git a/target/config/Config.in.target b/target/config/Config.in.target index 6cb858450..ad1e8dfe0 100644 --- a/target/config/Config.in.target +++ b/target/config/Config.in.target @@ -3,7 +3,7 @@ config ADK_TARGET_CFLAGS string - default "-march=isaaplus -mcpu=5208" if ADK_CPU_CF_5208 + default "-mcpu=5208" if ADK_CPU_CF_5208 default "-mcpu=v7.10.d" if ADK_CPU_MICROBLAZE default "-m4 -ml" if ADK_CPU_SH4 && ADK_little default "-m4 -mb" if ADK_CPU_SH4 && ADK_big diff --git a/target/m68k/uclibc.config b/target/m68k/uclibc.config index 2612dfe40..49c804c17 100644 --- a/target/m68k/uclibc.config +++ b/target/m68k/uclibc.config @@ -53,7 +53,7 @@ UCLIBC_HAS_FLOATS=y UCLIBC_HAS_SOFT_FLOAT=y DO_C99_MATH=y # DO_XSI_MATH is not set -UCLIBC_HAS_FENV=y +# UCLIBC_HAS_FENV is not set UCLIBC_HAS_LONG_DOUBLE_MATH=y KERNEL_HEADERS="" UCLIBC_UCLINUX_BROKEN_MUNMAP=y @@ -62,7 +62,7 @@ HAVE_DOT_CONFIG=y # # General Library Settings # -DOPIC=y +# DOPIC is not set ARCH_HAS_NO_SHARED=y ARCH_HAS_NO_LDSO=y UCLIBC_CTOR_DTOR=y @@ -72,12 +72,12 @@ HAS_NO_THREADS=y # UCLIBC_HAS_THREADS_NATIVE is not set UCLIBC_HAS_SYSLOG=y UCLIBC_HAS_LFS=y -MALLOC=y -# MALLOC_SIMPLE is not set +# MALLOC is not set +MALLOC_SIMPLE=y # MALLOC_STANDARD is not set -MALLOC_GLIBC_COMPAT=y +# MALLOC_GLIBC_COMPAT is not set UCLIBC_DYNAMIC_ATEXIT=y -# COMPAT_ATEXIT is not set +COMPAT_ATEXIT=y UCLIBC_SUSV3_LEGACY=y # UCLIBC_SUSV3_LEGACY_MACROS is not set UCLIBC_SUSV4_LEGACY=y @@ -194,8 +194,8 @@ UCLIBC_HAS_NFTW=y UCLIBC_HAS_FTW=y UCLIBC_HAS_FTS=y UCLIBC_HAS_GLOB=y -UCLIBC_HAS_GNU_GLOB=y -UCLIBC_HAS_UTMPX=y +# UCLIBC_HAS_GNU_GLOB is not set +# UCLIBC_HAS_UTMPX is not set # # Library Installation Options @@ -208,7 +208,7 @@ HARDWIRED_ABSPATH=y # # Security options # -UCLIBC_HAS_ARC4RANDOM=y +# UCLIBC_HAS_ARC4RANDOM is not set # UCLIBC_HAS_SSP is not set UCLIBC_BUILD_NOEXECSTACK=y diff --git a/toolchain/elf2flt/Makefile b/toolchain/elf2flt/Makefile index 72cb6f755..a42398a3e 100644 --- a/toolchain/elf2flt/Makefile +++ b/toolchain/elf2flt/Makefile @@ -11,7 +11,7 @@ BINUTILS_VERSION:= 2.24 $(WRKBUILD)/.headers: $(WRKBUILD)/.configured: (cd $(WRKBUILD); ./configure --prefix=$(STAGING_HOST_DIR)/usr \ - --target=$(ADK_TARGET_ARCH) \ + --target=$(GNU_TARGET_NAME) \ --with-bfd-include-dir=$(TOOLCHAIN_BUILD_DIR)/w-binutils-${BINUTILS_VERSION}-1/binutils-${BINUTILS_VERSION}/bfd \ --with-binutils-include-dir=$(TOOLCHAIN_BUILD_DIR)/w-binutils-${BINUTILS_VERSION}-1/binutils-${BINUTILS_VERSION}/include \ --with-libbfd=$(TOOLCHAIN_BUILD_DIR)/w-binutils-${BINUTILS_VERSION}-1/binutils-${BINUTILS_VERSION}/bfd/libbfd.a \ diff --git a/toolchain/gcc/Makefile b/toolchain/gcc/Makefile index 25c396e1b..efe5231c1 100644 --- a/toolchain/gcc/Makefile +++ b/toolchain/gcc/Makefile @@ -48,12 +48,16 @@ ifneq ($(ADK_LINUX_AARCH64)$(ADK_LINUX_ALPHA)$(ADK_LINUX_XTENSA)$(ADK_LINUX_M68K GCC_FINAL_CONFOPTS+= --enable-cxx-flags='$(TARGET_CXXFLAGS)' endif +ifeq ($(ADK_TARGET_UCLINUX),y) +GCC_FINAL_CONFOPTS+= --disable-shared +else # uClibc/glibc uses libgcc_s.so.1 for pthread_cancel with dlopen ifeq (ADK_TARGET_LIB_MUSL),y) GCC_FINAL_CONFOPTS+= --enable-shared='libstdc++' else GCC_FINAL_CONFOPTS+= --enable-shared='libstdc++,libgcc' endif +endif ifeq ($(ADK_LINUX_M68K)$(ADK_LINUX_SH)$(ADK_LINUX_X86_64)$(ADK_LINUX_X86),) GCC_FINAL_CONFOPTS+= --disable-biarch --disable-multilib @@ -267,6 +271,10 @@ endif ln -sf libstdc++.so.6.0.19 libstdc++.so.6 # cleanup unneeded docs rm -rf $(TOOLCHAIN_DIR)/usr/share + # create gcc wrapper for uClinux/m68k + echo "#!/bin/sh" > $(TOOLCHAIN_DIR)/usr/bin/adk-uclinux-gcc + echo "exec ${GNU_TARGET_NAME}-gcc \"$$@\" -specs $(ADK_TOPDIR)/toolchain/gcc/m68k-uclinux-gcc.specs" >> $(TOOLCHAIN_DIR)/usr/bin/adk-uclinux-gcc + chmod a+x $(TOOLCHAIN_DIR)/usr/bin/adk-uclinux-gcc touch $@ include ${ADK_TOPDIR}/mk/toolchain.mk diff --git a/toolchain/gcc/m68k-uclinux-gcc.specs b/toolchain/gcc/m68k-uclinux-gcc.specs new file mode 100644 index 000000000..3b74701b9 --- /dev/null +++ b/toolchain/gcc/m68k-uclinux-gcc.specs @@ -0,0 +1,147 @@ +*asm: +%(asm_cpu_spec) %(asm_pcrel_spec) + +*asm_debug: +%{!g0:%{gstabs*:--gstabs}%{!gstabs*:%{g*:--gdwarf2}}} %{fdebug-prefix-map=*:--debug-prefix-map %*} + +*asm_final: +%{gsplit-dwarf: + objcopy --extract-dwo %{c:%{o*:%*}%{!o*:%b%O}}%{!c:%U%O} %{c:%{o*:%:replace-extension(%{o*:%*} .dwo)}%{!o*:%b.dwo}}%{!c:%b.dwo} + objcopy --strip-dwo %{c:%{o*:%*}%{!o*:%b%O}}%{!c:%U%O} } + +*asm_options: +%{-target-help:%:print-asm-header()} %{v} %{w:-W} %{I*} %a %Y %{c:%W{o*}%{!o*:-o %w%b%O}}%{!c:-o %d%w%u%O} + +*invoke_as: +%{!fwpa: %{fcompare-debug=*|fdump-final-insns=*:%:compare-debug-dump-opt()} %{!S:-o %|.s | + as %(asm_options) %m.s %A } } + +*cpp: +%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT} + +*cpp_options: +%(cpp_unique_options) %1 %{m*} %{std*&ansi&trigraphs} %{W*&pedantic*} %{w} %{f*} %{g*:%{!g0:%{g*} %{!fno-working-directory:-fworking-directory}}} %{O*} %{undef} %{save-temps*:-fpch-preprocess} + +*cpp_debug_options: +%{d*} + +*cpp_unique_options: +%{!Q:-quiet} %{nostdinc*} %{C} %{CC} %{v} %{I*&F*} %{P} %I %{MD:-MD %{!o:%b.d}%{o*:%.d%*}} %{MMD:-MMD %{!o:%b.d}%{o*:%.d%*}} %{M} %{MM} %{MF*} %{MG} %{MP} %{MQ*} %{MT*} %{!E:%{!M:%{!MM:%{!MT:%{!MQ:%{MD|MMD:%{o*:-MQ %*}}}}}}} %{remap} %{g3|ggdb3|gstabs3|gcoff3|gxcoff3|gvms3:-dD} %{!iplugindir*:%{fplugin*:%:find-plugindir()}} %{H} %C %{D*&U*&A*} %{i*} %Z %i %{fmudflap:-D_MUDFLAP -include mf-runtime.h} %{fmudflapth:-D_MUDFLAP -D_MUDFLAPTH -include mf-runtime.h} %{E|M|MM:%W{o*}} + +*trad_capable_cpp: +cc1 -E %{traditional|traditional-cpp:-traditional-cpp} + +*cc1: +%{profile:-p} + +*cc1_options: +%{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are incompatible}} %{!iplugindir*:%{fplugin*:%:find-plugindir()}} %1 %{!Q:-quiet} %{!dumpbase:-dumpbase %B} %{d*} %{m*} %{aux-info*} %{fcompare-debug-second:%:compare-debug-auxbase-opt(%b)} %{!fcompare-debug-second:%{c|S:%{o*:-auxbase-strip %*}%{!o*:-auxbase %b}}}%{!c:%{!S:-auxbase %b}} %{g*} %{O*} %{W*&pedantic*} %{w} %{std*&ansi&trigraphs} %{v:-version} %{pg:-p} %{p} %{f*} %{undef} %{Qn:-fno-ident} %{Qy:} %{-help:--help} %{-target-help:--target-help} %{-version:--version} %{-help=*:--help=%*} %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %b.s}}} %{fsyntax-only:-o %j} %{-param*} %{fmudflap|fmudflapth:-fno-builtin -fno-merge-constants} %{coverage:-fprofile-arcs -ftest-coverage} + +*cc1plus: + + +*link_gcc_c_sequence: +%{static:--start-group} %G %L %{static:--end-group}%{!static:%G} + +*link_ssp: +%{fstack-protector:} + +*endfile: +crtn.o%s + +*link: +%{!static:--eh-frame-hdr} %{!elf2flt*:-elf2flt} %{mid-shared-library: %{mshared-library-id=*:-shared-lib-id %*;:-shared-lib-id 0}} + +*lib: +%{mid-shared-library:%{!static-libc:-R libc.gdb%s}} %{pthread:-lpthread} -lc + +*mfwrap: + %{static: %{fmudflap|fmudflapth: --wrap=malloc --wrap=free --wrap=calloc --wrap=realloc --wrap=mmap --wrap=mmap64 --wrap=munmap --wrap=alloca} %{fmudflapth: --wrap=pthread_create}} %{fmudflap|fmudflapth: --wrap=main} + +*mflib: +%{fmudflap|fmudflapth: -export-dynamic} + +*link_gomp: + + +*libgcc: +-lgcc + +*startfile: +%{mshared-library-id=0|!mshared-library-id=*: crt1.o%s ;: Scrt1.o%s} crti.o%s + +*cross_compile: +1 + +*version: +4.8.3 + +*multilib: +. !mcpu=51qe !mcpu=5206 !mcpu=5206e !mcpu=5307 !mcpu=5329 !mcpu=5407 !mcpu=54455 !msep-data !mid-shared-library;m51qe mcpu=51qe !mcpu=5206 !mcpu=5206e !mcpu=5307 !mcpu=5329 !mcpu=5407 !mcpu=54455 !msep-data !mid-shared-library;m5206 !mcpu=51qe mcpu=5206 !mcpu=5206e !mcpu=5307 !mcpu=5329 !mcpu=5407 !mcpu=54455 !msep-data !mid-shared-library;m5206e !mcpu=51qe !mcpu=5206 mcpu=5206e !mcpu=5307 !mcpu=5329 !mcpu=5407 !mcpu=54455 !msep-data !mid-shared-library;m5307 !mcpu=51qe !mcpu=5206 !mcpu=5206e mcpu=5307 !mcpu=5329 !mcpu=5407 !mcpu=54455 !msep-data !mid-shared-library;m5329 !mcpu=51qe !mcpu=5206 !mcpu=5206e !mcpu=5307 mcpu=5329 !mcpu=5407 !mcpu=54455 !msep-data !mid-shared-library;m5407 !mcpu=51qe !mcpu=5206 !mcpu=5206e !mcpu=5307 !mcpu=5329 mcpu=5407 !mcpu=54455 !msep-data !mid-shared-library;m54455 !mcpu=51qe !mcpu=5206 !mcpu=5206e !mcpu=5307 !mcpu=5329 !mcpu=5407 mcpu=54455 !msep-data !mid-shared-library;msep-data !mcpu=51qe !mcpu=5206 !mcpu=5206e !mcpu=5307 !mcpu=5329 !mcpu=5407 !mcpu=54455 msep-data !mid-shared-library;mid-shared-library !mcpu=51qe !mcpu=5206 !mcpu=5206e !mcpu=5307 !mcpu=5329 !mcpu=5407 !mcpu=54455 !msep-data mid-shared-library;m51qe/msep-data mcpu=51qe !mcpu=5206 !mcpu=5206e !mcpu=5307 !mcpu=5329 !mcpu=5407 !mcpu=54455 msep-data !mid-shared-library;m51qe/mid-shared-library mcpu=51qe !mcpu=5206 !mcpu=5206e !mcpu=5307 !mcpu=5329 !mcpu=5407 !mcpu=54455 !msep-data mid-shared-library;m5206/msep-data !mcpu=51qe mcpu=5206 !mcpu=5206e !mcpu=5307 !mcpu=5329 !mcpu=5407 !mcpu=54455 msep-data !mid-shared-library;m5206/mid-shared-library !mcpu=51qe mcpu=5206 !mcpu=5206e !mcpu=5307 !mcpu=5329 !mcpu=5407 !mcpu=54455 !msep-data mid-shared-library;m5206e/msep-data !mcpu=51qe !mcpu=5206 mcpu=5206e !mcpu=5307 !mcpu=5329 !mcpu=5407 !mcpu=54455 msep-data !mid-shared-library;m5206e/mid-shared-library !mcpu=51qe !mcpu=5206 mcpu=5206e !mcpu=5307 !mcpu=5329 !mcpu=5407 !mcpu=54455 !msep-data mid-shared-library;m5307/msep-data !mcpu=51qe !mcpu=5206 !mcpu=5206e mcpu=5307 !mcpu=5329 !mcpu=5407 !mcpu=54455 msep-data !mid-shared-library;m5307/mid-shared-library !mcpu=51qe !mcpu=5206 !mcpu=5206e mcpu=5307 !mcpu=5329 !mcpu=5407 !mcpu=54455 !msep-data mid-shared-library;m5329/msep-data !mcpu=51qe !mcpu=5206 !mcpu=5206e !mcpu=5307 mcpu=5329 !mcpu=5407 !mcpu=54455 msep-data !mid-shared-library;m5329/mid-shared-library !mcpu=51qe !mcpu=5206 !mcpu=5206e !mcpu=5307 mcpu=5329 !mcpu=5407 !mcpu=54455 !msep-data mid-shared-library;m5407/msep-data !mcpu=51qe !mcpu=5206 !mcpu=5206e !mcpu=5307 !mcpu=5329 mcpu=5407 !mcpu=54455 msep-data !mid-shared-library;m5407/mid-shared-library !mcpu=51qe !mcpu=5206 !mcpu=5206e !mcpu=5307 !mcpu=5329 mcpu=5407 !mcpu=54455 !msep-data mid-shared-library;m54455/msep-data !mcpu=51qe !mcpu=5206 !mcpu=5206e !mcpu=5307 !mcpu=5329 !mcpu=5407 mcpu=54455 msep-data !mid-shared-library;m54455/mid-shared-library !mcpu=51qe !mcpu=5206 !mcpu=5206e !mcpu=5307 !mcpu=5329 !mcpu=5407 mcpu=54455 !msep-data mid-shared-library; + +*multilib_defaults: + + +*multilib_extra: +Wa,-mno-mac + +*multilib_matches: +march=isaa mcpu=5206e;march=isaaplus mcpu=5208;march=isab mcpu=5407;mcpu=51 mcpu=51qe;mcpu=51ac mcpu=51qe;mcpu=51ag mcpu=51qe;mcpu=51cn mcpu=51qe;mcpu=51em mcpu=51qe;mcpu=51je mcpu=51qe;mcpu=51jf mcpu=51qe;mcpu=51jg mcpu=51qe;mcpu=51jm mcpu=51qe;mcpu=51mm mcpu=51qe;mcpu=51qm mcpu=51qe;mcpu=5202 mcpu=5206;mcpu=5204 mcpu=5206;mcpu=5207 mcpu=5208;mcpu=5210a mcpu=5208;mcpu=5211a mcpu=5208;mcpu=5211 mcpu=5208;mcpu=5212 mcpu=5208;mcpu=5213 mcpu=5208;mcpu=5214 mcpu=5208;mcpu=5216 mcpu=5208;mcpu=5221x mcpu=5208;mcpu=52221 mcpu=5208;mcpu=52223 mcpu=5208;mcpu=52230 mcpu=5208;mcpu=52231 mcpu=5208;mcpu=52232 mcpu=5208;mcpu=52233 mcpu=5208;mcpu=52234 mcpu=5208;mcpu=52235 mcpu=5208;mcpu=5224 mcpu=5208;mcpu=5225 mcpu=5208;mcpu=52252 mcpu=5208;mcpu=52254 mcpu=5208;mcpu=52255 mcpu=5208;mcpu=52256 mcpu=5208;mcpu=52258 mcpu=5208;mcpu=52259 mcpu=5208;mcpu=52274 mcpu=5208;mcpu=52277 mcpu=5208;mcpu=5232 mcpu=5208;mcpu=5233 mcpu=5208;mcpu=5234 mcpu=5208;mcpu=5235 mcpu=5208;mcpu=523x mcpu=5208;mcpu=5249 mcpu=5206e;mcpu=5250 mcpu=5206e;mcpu=5253 mcpu=5206e;mcpu=5270 mcpu=5208;mcpu=5271 mcpu=5208;mcpu=5272 mcpu=5206e;mcpu=5274 mcpu=5208;mcpu=5275 mcpu=5208;mcpu=5280 mcpu=5208;mcpu=5281 mcpu=5208;mcpu=5282 mcpu=5208;mcpu=528x mcpu=5208;mcpu=53011 mcpu=5329;mcpu=53012 mcpu=5329;mcpu=53013 mcpu=5329;mcpu=53014 mcpu=5329;mcpu=53015 mcpu=5329;mcpu=53016 mcpu=5329;mcpu=53017 mcpu=5329;mcpu=5327 mcpu=5329;mcpu=5328 mcpu=5329;mcpu=532x mcpu=5329;mcpu=5372 mcpu=5329;mcpu=5373 mcpu=5329;mcpu=537x mcpu=5329;mcpu=54410 mcpu=54455;mcpu=54415 mcpu=54455;mcpu=54416 mcpu=54455;mcpu=54417 mcpu=54455;mcpu=54418 mcpu=54455;mcpu=54450 mcpu=54455;mcpu=54451 mcpu=54455;mcpu=54452 mcpu=54455;mcpu=54453 mcpu=54455;mcpu=54454 mcpu=54455;mcpu=51qe mcpu=51qe;mcpu=5206 mcpu=5206;mcpu=5206e mcpu=5206e;mcpu=5307 mcpu=5307;mcpu=5329 mcpu=5329;mcpu=5407 mcpu=5407;mcpu=54455 mcpu=54455;msep-data msep-data;mid-shared-library mid-shared-library; + +*multilib_exclusions: + + +*multilib_options: +mcpu=51qe/mcpu=5206/mcpu=5206e/mcpu=5307/mcpu=5329/mcpu=5407/mcpu=54455 msep-data/mid-shared-library + +*multilib_reuse: + + +*linker: +collect2 + +*linker_plugin_file: + + +*lto_wrapper: + + +*lto_gcc: + + +*link_libgcc: +%D + +*md_exec_prefix: + + +*md_startfile_prefix: + + +*md_startfile_prefix_1: + + +*startfile_prefix_spec: + + +*sysroot_spec: +--sysroot=%R + +*sysroot_suffix_spec: + + +*sysroot_hdrs_suffix_spec: + + +*self_spec: + + +*asm_cpu_spec: +%{m68851}%{mno-68851} %{m68881}%{mno-68881} %{msoft-float:-mno-float} %{m68020-40:-m68040}%{m68020-60:-m68040}%{mcpu=*:-mcpu=%*}%{march=*:-march=%*} + +*asm_pcrel_spec: +%{fPIC|fpic|mpcrel:--pcrel} %{msep-data|mid-shared-library:--pcrel} + +*link_command: +%{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S: %(linker) %{fuse-linker-plugin: %e-fuse-linker-plugin is not supported in this configuration}%{flto|flto=*:%. */ + ++/* Do not use TM clone registry. It breaks -msep-data (-fPIC) code. */ ++/* https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54584 */ ++#define USE_TM_CLONE_REGISTRY 0 ++ + #undef STARTFILE_SPEC + #define STARTFILE_SPEC \ + "%{mshared-library-id=0|!mshared-library-id=*: crt1.o%s ;: Scrt1.o%s} \ diff --git a/toolchain/uclibc/patches/0.9.33.2/0007-disable-test-for-non-MMU-systems.patch b/toolchain/uclibc/patches/0.9.33.2/0007-disable-test-for-non-MMU-systems.patch new file mode 100644 index 000000000..b21cffbd3 --- /dev/null +++ b/toolchain/uclibc/patches/0.9.33.2/0007-disable-test-for-non-MMU-systems.patch @@ -0,0 +1,30 @@ +From 325f778f3bbb1b13c436e7754dd22097d31c04d2 Mon Sep 17 00:00:00 2001 +From: Waldemar Brodkorb +Date: Thu, 21 Aug 2014 22:02:26 +0200 +Subject: [PATCH 7/9] disable test for non-MMU systems + +This test fails for non-MMU systems, because it uses fork() + +Signed-off-by: Waldemar Brodkorb +--- + test/Makefile | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/test/Makefile b/test/Makefile +index 787c530..d51bb62 100644 +--- a/test/Makefile ++++ b/test/Makefile +@@ -42,6 +42,10 @@ endif + ifeq ($(HAS_NO_THREADS),y) + DIRS := $(filter-out pthread,$(DIRS)) + endif ++# librt test needs fork() ++ifneq ($(ARCH_USE_MMU),y) ++ DIRS := $(filter-out librt,$(DIRS)) ++endif + + test check all: run + +-- +1.8.5.2 (Apple Git-48) + diff --git a/toolchain/uclibc/patches/0.9.33.2/0008-disable-test-for-systems-without-FPU.patch b/toolchain/uclibc/patches/0.9.33.2/0008-disable-test-for-systems-without-FPU.patch new file mode 100644 index 000000000..bf29909ef --- /dev/null +++ b/toolchain/uclibc/patches/0.9.33.2/0008-disable-test-for-systems-without-FPU.patch @@ -0,0 +1,30 @@ +From 012dfda4b27ad92edb6a9ea14e5ce4c5567d1c91 Mon Sep 17 00:00:00 2001 +From: Waldemar Brodkorb +Date: Thu, 21 Aug 2014 22:04:59 +0200 +Subject: [PATCH 8/9] disable test for systems without FPU + +This test fails for systems without fpu. +For example m68k build for non-mmu/non-fpu systems fail. + +Signed-off-by: Waldemar Brodkorb +--- + test/math/Makefile.in | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/test/math/Makefile.in b/test/math/Makefile.in +index d241baa..147d579 100644 +--- a/test/math/Makefile.in ++++ b/test/math/Makefile.in +@@ -13,6 +13,9 @@ endif + ifeq ($(DO_C99_MATH),) + TESTS_DISABLED += test-float test-ifloat test-double test-idouble rint signgam ilogb + endif ++ifeq ($(UCLIBC_HAS_FPU),) ++TESTS_DISABLED += test-fpucw ++endif + + DODIFF_rint := 1 + DODIFF_signgam := 1 +-- +1.8.5.2 (Apple Git-48) + -- cgit v1.2.3 From b52fe4c13975bf421359a59284857204c04c8d28 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Tue, 26 Aug 2014 14:06:03 +0200 Subject: activate some options, fix root= missing --- mk/rootfs.mk | 2 +- target/linux/config/Config.in.block | 2 +- target/linux/config/Config.in.cpu | 1 + target/linux/config/Config.in.i2c | 1 + 4 files changed, 4 insertions(+), 2 deletions(-) (limited to 'target') diff --git a/mk/rootfs.mk b/mk/rootfs.mk index f816ff3ee..5645d1ef3 100644 --- a/mk/rootfs.mk +++ b/mk/rootfs.mk @@ -40,7 +40,7 @@ ifeq ($(ADK_TARGET_SYSTEM_RASPBERRY_PI),y) ROOTFS:= root=/dev/mmcblk0p2 rootwait endif -ifeq ($(ADK_TARGET_SYSTEM_CUBOX_I),y) +ifeq ($(ADK_TARGET_SYSTEM_SOLIDRUN_IMX6),y) ROOTFS:= root=/dev/mmcblk0p1 rootwait endif diff --git a/target/linux/config/Config.in.block b/target/linux/config/Config.in.block index 63d8a03db..46d1fa684 100644 --- a/target/linux/config/Config.in.block +++ b/target/linux/config/Config.in.block @@ -170,7 +170,7 @@ config ADK_KERNEL_ATA_PIIX default y if ADK_TARGET_SYSTEM_IBM_X40 default n help - ATA PIXX driver + ATA PIIX driver. config ADK_KERNEL_PATA_MACIO prompt "MAC IO support" diff --git a/target/linux/config/Config.in.cpu b/target/linux/config/Config.in.cpu index 5bfa6d6c1..1f158a27c 100644 --- a/target/linux/config/Config.in.cpu +++ b/target/linux/config/Config.in.cpu @@ -53,6 +53,7 @@ config ADK_KERNEL_ARM_IMX6_CPUFREQ select ADK_KERNEL_REGULATOR select ADK_KERNEL_REGULATOR_FIXED_VOLTAGE select ADK_KERNEL_REGULATOR_ANATOP + select ADK_KERNEL_REGULATOR_PFUZE100 depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 default n diff --git a/target/linux/config/Config.in.i2c b/target/linux/config/Config.in.i2c index e7cbc24f2..bc4da73f6 100644 --- a/target/linux/config/Config.in.i2c +++ b/target/linux/config/Config.in.i2c @@ -12,6 +12,7 @@ config ADK_KERNEL_I2C_IMX tristate depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 select ADK_KERNEL_I2C + select ADK_KERNEL_REGMAP_I2C select ADK_KERNEL_I2C_CHARDEV default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 default n -- cgit v1.2.3