Browse Source

add support for glibc/eglibc qemu-sh systems

Waldemar Brodkorb 10 years ago
parent
commit
0f96a0f56c

+ 2 - 2
package/base-files/Makefile

@@ -6,7 +6,7 @@ include $(TOPDIR)/mk/rootfs.mk
 
 PKG_NAME:=		base-files
 PKG_VERSION:=		1.0
-PKG_RELEASE:=		59
+PKG_RELEASE:=		60
 PKG_SECTION:=		base
 PKG_DESCR:=		basic files and scripts
 
@@ -65,7 +65,7 @@ endif
 ifeq ($(ADK_TARGET_QEMU_ARM_MODEL_VERSATILE),y)
 	$(SED) 's#ttyS#ttyAMA#g' $(IDIR_BASE_FILES)/etc/inittab
 endif
-ifeq ($(ADK_TARGET_SYSTEM_ARANYM),y)
+ifeq ($(ADK_TARGET_SYSTEM_ARANYM_M68K),y)
 	$(SED) 's#ttyS#nfcon0#g' $(IDIR_BASE_FILES)/etc/inittab
 endif
 	$(SED) 's#@SPEED@#$(ADK_RUNTIME_CONSOLE_SERIAL_SPEED)#' $(IDIR_BASE_FILES)/etc/inittab

+ 1 - 1
package/libgcc/Makefile

@@ -25,7 +25,7 @@ do-install:
 ifeq ($(ADK_NATIVE),)
 	${INSTALL_DIR} ${IDIR_LIBGCC}/$(ADK_TARGET_LIBC_PATH)
 ifeq ($(ADK_LINUX_SH),y)
-	${CP} ${STAGING_TARGET_DIR}/lib/!m1/libgcc*.so* ${IDIR_LIBGCC}/$(ADK_TARGET_LIBC_PATH)
+	${CP} ${STAGING_TARGET_DIR}/lib/!m4/libgcc*.so* ${IDIR_LIBGCC}/$(ADK_TARGET_LIBC_PATH)
 else
 	${CP} ${STAGING_TARGET_DIR}/$(ADK_TARGET_LIBC_PATH)/libgcc*.so* ${IDIR_LIBGCC}/$(ADK_TARGET_LIBC_PATH)
 endif

+ 3 - 1
target/config/Config.in

@@ -482,7 +482,7 @@ config ADK_TARGET_CPU_ARCH
 	default "avr32" if ADK_LINUX_AVR32
 	default "sparc" if ADK_LINUX_SPARC
 	default "sparc64" if ADK_LINUX_SPARC64
-	default "sh" if ADK_LINUX_SH
+	default "sh4" if ADK_LINUX_SH
 	default "cris" if ADK_CPU_CRIS_V10
 	default "crisv32" if ADK_CPU_CRIS_V32
 	default "ppc" if ADK_CPU_PPC
@@ -602,6 +602,7 @@ config ADK_TARGET_LIB_EGLIBC
 		ADK_LINUX_MIPS64EL || \
 		ADK_LINUX_PPC || \
 		ADK_LINUX_PPC64 || \
+		ADK_LINUX_SH || \
 		ADK_LINUX_SPARC || \
 		ADK_LINUX_SPARC64 || \
 		ADK_LINUX_X86 || \
@@ -622,6 +623,7 @@ config ADK_TARGET_LIB_GLIBC
 		ADK_LINUX_MIPS64EL || \
 		ADK_LINUX_PPC || \
 		ADK_LINUX_PPC64 || \
+		ADK_LINUX_SH || \
 		ADK_LINUX_SPARC || \
 		ADK_LINUX_SPARC64 || \
 		ADK_LINUX_X86 || \

+ 3 - 2
target/config/Config.in.runtime

@@ -23,6 +23,7 @@ config ADK_RUNTIME_PASSWORD
 config ADK_RUNTIME_TMPFS_SIZE
 	string "size of /tmp in memory (kB)"
 	default "16384" if ADK_TARGET_SYSTEM_IBM_X40
+	default "16384" if ADK_TARGET_SYSTEM_RASPBERRY_PI
 	default "2048"
 	help
 	  Size of /tmp in memory in Kilobyte.
@@ -35,8 +36,8 @@ config ADK_RUNTIME_TIMEZONE
 
 choice
 prompt "Console output on embedded system"
-default ADK_RUNTIME_CONSOLE_BOTH if ADK_TARGET_WITH_VGA && !ADK_TARGET_SYSTEM_RASPBERRY_PI
-default ADK_RUNTIME_CONSOLE_VGA if ADK_TARGET_SYSTEM_RASPBERRY_PI
+default ADK_RUNTIME_CONSOLE_BOTH if ADK_TARGET_WITH_VGA && !ADK_TARGET_SYSTEM_RASPBERRY_PI && !ADK_TARGET_SYSTEM_QEMU_SH4
+default ADK_RUNTIME_CONSOLE_VGA if ADK_TARGET_SYSTEM_RASPBERRY_PI || ADK_TARGET_SYSTEM_QEMU_SH4
 default ADK_RUNTIME_CONSOLE_SERIAL
 
 config ADK_RUNTIME_CONSOLE_VGA

+ 2 - 0
target/linux/config/Config.in.input

@@ -5,6 +5,7 @@ config ADK_KERNEL_INPUT
 	boolean
 	default y if ADK_TARGET_SYSTEM_QEMU_I686
 	default y if ADK_TARGET_SYSTEM_QEMU_X86_64
+	default y if ADK_TARGET_SYSTEM_QEMU_SH4
 	default y if ADK_TARGET_SYSTEM_ARANYM_M68K
 	default y if ADK_TARGET_SYSTEM_VBOX_I686
 	default y if ADK_TARGET_SYSTEM_PCENGINES_ALIX1C
@@ -143,6 +144,7 @@ config ADK_KPACKAGE_KMOD_USB_HID
         depends on !ADK_TARGET_SYSTEM_FOXBOARD_LX
 	depends on ADK_TARGET_WITH_USB
 	default y if ADK_TARGET_SYSTEM_RASPBERRY_PI
+	default y if ADK_TARGET_SYSTEM_QEMU_SH4
 	default n
 
 config ADK_KPACKAGE_KMOD_KEYBOARD_ATKBD

+ 2 - 2
target/linux/config/Config.in.usb

@@ -31,7 +31,7 @@ config ADK_KPACKAGE_KMOD_USB
 	select ADK_KERNEL_NLS
 	depends on !ADK_KERNEL_USB
 	default y if ADK_TARGET_SYSTEM_QEMU_I686
-	default y if ADK_TARGET_SYSTEM_QEMU_SH
+	default y if ADK_TARGET_SYSTEM_QEMU_SH4
 	default y if ADK_TARGET_SYSTEM_QEMU_X86_64
 	default y if ADK_TARGET_SYSTEM_PCENGINES_ALIX1C
 	default y if ADK_TARGET_SYSTEM_PCENGINES_ALIX2D2
@@ -116,7 +116,7 @@ config ADK_KPACKAGE_KMOD_USB_OHCI_HCD
 	default y if ADK_TARGET_SYSTEM_INTEL_ATOM
 	default y if ADK_NATIVE_SYSTEM_INTEL_ATOM
 	default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
-	default y if ADK_TARGET_SYSTEM_QEMU_SH
+	default y if ADK_TARGET_SYSTEM_QEMU_SH4
 	default n
 	help
 	  The Open Host Controller Interface (OHCI) is a standard for accessing

+ 7 - 7
target/sh/kernel.config

@@ -101,7 +101,7 @@ CONFIG_UIDGID_CONVERTED=y
 # CONFIG_SYSFS_DEPRECATED is not set
 # CONFIG_RELAY is not set
 # CONFIG_BLK_DEV_INITRD is not set
-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
 CONFIG_SYSCTL=y
 CONFIG_ANON_INODES=y
 CONFIG_EXPERT=y
@@ -132,7 +132,7 @@ CONFIG_PERF_EVENTS=y
 # CONFIG_DEBUG_PERF_USE_VMALLOC is not set
 CONFIG_VM_EVENT_COUNTERS=y
 CONFIG_PCI_QUIRKS=y
-CONFIG_COMPAT_BRK=y
+# CONFIG_COMPAT_BRK is not set
 CONFIG_SLAB=y
 # CONFIG_SLUB is not set
 # CONFIG_SLOB is not set
@@ -278,7 +278,7 @@ CONFIG_ZONE_DMA_FLAG=0
 CONFIG_NR_QUICK=1
 # CONFIG_KSM is not set
 CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
-CONFIG_CROSS_MEMORY_ATTACH=y
+# CONFIG_CROSS_MEMORY_ATTACH is not set
 CONFIG_NEED_PER_CPU_KM=y
 # CONFIG_CLEANCACHE is not set
 
@@ -350,11 +350,11 @@ CONFIG_SH_CLK_CPG_LEGACY=y
 #
 # Kernel features
 #
-# CONFIG_HZ_100 is not set
-CONFIG_HZ_250=y
+CONFIG_HZ_100=y
+# CONFIG_HZ_250 is not set
 # CONFIG_HZ_300 is not set
 # CONFIG_HZ_1000 is not set
-CONFIG_HZ=250
+CONFIG_HZ=100
 # CONFIG_SCHED_HRTICK is not set
 # CONFIG_KEXEC is not set
 # CONFIG_CRASH_DUMP is not set
@@ -385,7 +385,7 @@ CONFIG_BOOT_LINK_OFFSET=0x00800000
 CONFIG_ENTRY_OFFSET=0x00001000
 CONFIG_CMDLINE_OVERWRITE=y
 # CONFIG_CMDLINE_EXTEND is not set
-CONFIG_CMDLINE="console=ttySC1 console=tty0"
+CONFIG_CMDLINE="console=tty0"
 
 #
 # Bus options

+ 2 - 2
target/sh/sys-available/qemu-sh → target/sh/sys-available/qemu-sh4

@@ -1,7 +1,7 @@
-config ADK_TARGET_SYSTEM_QEMU_SH
+config ADK_TARGET_SYSTEM_QEMU_SH4
 	bool "Qemu Emulator"
 	select ADK_sh
-	select ADK_qemu_sh
+	select ADK_qemu_sh4
 	select ADK_CPU_SH4
 	select ADK_HARDWARE_QEMU
 	select ADK_TARGET_WITH_VGA

+ 5 - 5
toolchain/gcc/Makefile

@@ -33,11 +33,8 @@ else
 GCC_CONFOPTS+=		--disable-sjlj-exceptions
 endif
 
-ifeq ($(ADK_TARGET_WITH_MULTILIB),y)
-ifeq ($(ADK_LINUX_X86_64),y)
-GCC_CONFOPTS+=		--with-multilib-list=$(ADK_MULTILIB_TARGET)
-endif
-GCC_CONFOPTS+=		--enable-multilib
+ifeq ($(ADK_LINUX_SH),y)
+GCC_CONFOPTS+=		--with-multilib-list=m4,m4-nofpu
 else
 GCC_CONFOPTS+=		--disable-biarch \
 			--disable-multilib
@@ -116,6 +113,9 @@ $(GCC_BUILD_DIR_MINIMAL)/.configured:
 	ln -sf ${STAGING_TARGET_DIR}/include $(STAGING_HOST_DIR)/$(REAL_GNU_TARGET_NAME)/sys-include
 	rm -rf ${STAGING_HOST_DIR}/$(REAL_GNU_TARGET_NAME)/lib
 	ln -sf ${STAGING_TARGET_DIR}/lib $(STAGING_HOST_DIR)/$(REAL_GNU_TARGET_NAME)/lib
+ifeq ($(ADK_LINUX_SH),y)
+	(cd ${STAGING_TARGET_DIR}/ && ln -sf . m4 && ln -sf . m4-nofpu)
+endif
 	sed -i '/k prot/agcc_cv_libc_provides_ssp=yes' $(WRKBUILD)/gcc/configure
 	cd $(GCC_BUILD_DIR_MINIMAL); PATH='$(TARGET_PATH)' \
 		$(WRKBUILD)/configure \