BusyBox Bug and Patch Tracking
BusyBox
  

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0001446 [buildroot] Architecture Specific block always 07-26-07 13:57 09-19-07 07:08
Reporter fgretief View Status public  
Assigned To buildroot
Priority normal Resolution fixed  
Status closed   Product Version
Summary 0001446: Buildroot compilation is broken for SH4 architecture
Description I am unable to do a build for the SH4 architecture.

Steps to reproduce:
  - do a clean checkout/update (rev 19264)
      svn://uclibc.org/trunk/buildroot [^]
  - rm .config* (just to make sure)
  - make menuconfig
      Select superh and SH4 architecture
      Select uClibc 0.9.29 (instead of the snapshot)
      Select cramfs as the root fs
  - make

...
/bin/sh /home/fgretief/src/buildroot/toolchain_build_sh4/gcc-4.2.1/gcc/../move-if-change tmp-macro_list macro_list
echo timestamp > s-macro_list
The directory that should contain system headers does not exist:
  /home/fgretief/src/buildroot/toolchain_build_sh4/uClibc_dev//usr/include
make[2]: *** [stmp-fixinc] Error 1
make[2]: Leaving directory `/home/fgretief/src/buildroot/toolchain_build_sh4/gcc-4.2.1-initial/gcc'
make[1]: *** [all-gcc] Error 2
make[1]: Leaving directory `/home/fgretief/src/buildroot/toolchain_build_sh4/gcc-4.2.1-initial'
make: *** [/home/fgretief/src/buildroot/toolchain_build_sh4/gcc-4.2.1-initial/.compiled] Error 2


Note:
  The binutils were never build. It started immediately with GCC-4.2.1

Directory listing after build:
-------------------------------------------------------------
~/src/buildroot$ ls -l
total 72
-rw-rw-r-- 1 fgretief fgretief 19191 Jul 24 21:30 Config.in
-rw-rw-r-- 1 fgretief fgretief 12072 Jul 26 22:07 Makefile
drwxrwxr-x 3 fgretief fgretief 4096 Jul 26 22:13 binaries
drwxrwxr-x 3 fgretief fgretief 4096 Jul 26 22:13 build_sh4
drwxrwxr-x 2 fgretief fgretief 4096 Jul 25 22:50 dl
drwxrwxr-x 4 fgretief fgretief 4096 Jul 22 13:08 docs
drwxrwxr-x 212 fgretief fgretief 4096 Jul 24 21:30 package
drwxrwxr-x 4 fgretief fgretief 4096 Jul 22 13:07 project
drwxrwxr-x 3 fgretief fgretief 4096 Jul 26 22:13 project_build_sh4
drwxrwxr-x 20 fgretief fgretief 4096 Jul 22 13:07 target
drwxrwxr-x 14 fgretief fgretief 4096 Jul 22 13:07 toolchain
drwxrwxr-x 4 fgretief fgretief 4096 Jul 26 22:14 toolchain_build_sh4

~/src/buildroot$ ls -l build_sh4/
total 4
drwxrwxr-x 5 fgretief fgretief 4096 Jul 26 22:13 staging_dir

~/src/buildroot$ ls -l project_build_sh4/
total 4
drwxrwxr-x 3 fgretief fgretief 4096 Jul 26 22:13 uclibc

~/src/buildroot$ ls -l toolchain_build_sh4/
total 8
drwxrwxr-x 25 fgretief fgretief 4096 Jul 26 22:14 gcc-4.2.1
drwxrwxr-x 9 fgretief fgretief 4096 Jul 26 22:15 gcc-4.2.1-initial

-------------------------------------------------------------

It looks like the error indicates to the fact that the kernel headers where
never compiled/copied to their correct place. Seems like a dependency is missing for kernel-headers and binutils.
Additional Information
Attached Files

- Relationships

- Notes
(0002641)
gururaj
07-26-07 17:22
edited on: 07-26-07 17:26

This is not just with GCC4.2.1. I am using latest Buildroot snapshot of 250707 & building arm926 toolchain with uClibc 0.9.29 with GCC-4.2.0 & i am facing the same issue. This started for me since Buildroot Snapshot 240707. At present Buildroot snapshot of 230707 works fine

 
(0002643)
bernhardf
07-27-07 09:18

This should be fixed as of r19285. Please confirm.
 
(0002648)
fgretief
08-01-07 14:34

I can confirm that the dependency fix works. The build get much further but there is still a number of breakages:

 (1) The uClibc configuration waits for user input at the 'Target Processor Type' question (see below). It continues as soon as you press enter.

*
* Target Architecture Features and Options
*
Target Processor Type
  1. SH2A (CONFIG_SH2A) (NEW)
  2. SH2 (CONFIG_SH2) (NEW)
  3. SH3 (CONFIG_SH3) (NEW)
> 4. SH4 (CONFIG_SH4) (NEW)
choice[1-4?]:




 (2) uClibc gets configured to build a big endian library, even though I selected little endian. See errors below.
The problem lies in the 'toolchain/uClibc/uclibc.mk' file were the SH is missing two lines. The patch below fixes the
problem for me.

Index: toolchain/uClibc/uclibc.mk
===================================================================
--- toolchain/uClibc/uclibc.mk (revision 19393)
+++ toolchain/uClibc/uclibc.mk (working copy)
@@ -70,6 +72,8 @@
 UCLIBC_TARGET_ENDIAN:=$(shell $(SHELL) -c "echo $(ARCH) | sed \
                -e 's/armeb/BIG/' \
                -e 's/arm/LITTLE/' \
+ -e 's/sh[234]eb/BIG/' \
+ -e 's/sh[234]/LITTLE/' \
                -e 's/mipsel/LITTLE/' \
                -e 's/mips/BIG/' \
 ")

-------- ERRORS ---------------
  LD libuClibc-0.9.29.so
/home/fgretief/src/buildroot/build_sh4/staging_dir/usr/bin/sh4-linux-uclibc-ld: /home/fgretief/src/buildroot/build_sh4/staging_dir/usr/lib/gcc/sh4-linux-uclibc/4.2.1/libgcc.a(_movmem_i4.o): compiled for a little endian system and target is big endian
/home/fgretief/src/buildroot/build_sh4/staging_dir/usr/bin/sh4-linux-uclibc-ld: /home/fgretief/src/buildroot/build_sh4/staging_dir/usr/lib/gcc/sh4-linux-uclibc/4.2.1/libgcc.a(_movmem_i4.o): uses instructions which are incompatible with instructions used in previous modules
/home/fgretief/src/buildroot/build_sh4/staging_dir/usr/bin/sh4-linux-uclibc-ld: failed to merge target specific data of file /home/fgretief/src/buildroot/build_sh4/staging_dir/usr/lib/gcc/sh4-linux-uclibc/4.2.1/libgcc.a(_movmem_i4.o)
/home/fgretief/src/buildroot/build_sh4/staging_dir/usr/bin/sh4-linux-uclibc-ld: /home/fgretief/src/buildroot/build_sh4/staging_dir/usr/lib/gcc/sh4-linux-uclibc/4.2.1/libgcc.a(_div_table.o): compiled for a little endian system and target is big endian
/home/fgretief/src/buildroot/build_sh4/staging_dir/usr/bin/sh4-linux-uclibc-ld: /home/fgretief/src/buildroot/build_sh4/staging_dir/usr/lib/gcc/sh4-linux-uclibc/4.2.1/libgcc.a(_div_table.o): uses instructions which are incompatible with instructions used in previous modules
/home/fgretief/src/buildroot/build_sh4/staging_dir/usr/bin/sh4-linux-uclibc-ld: failed to merge target specific data of file /home/fgretief/src/buildroot/build_sh4/staging_dir/usr/lib/gcc/sh4-linux-uclibc/4.2.1/libgcc.a(_div_table.o)
/home/fgretief/src/buildroot/build_sh4/staging_dir/usr/bin/sh4-linux-uclibc-ld: /home/fgretief/src/buildroot/build_sh4/staging_dir/usr/lib/gcc/sh4-linux-uclibc/4.2.1/libgcc.a(_divdi3.o): compiled for a little endian system and target is big endian
/home/fgretief/src/buildroot/build_sh4/staging_dir/usr/bin/sh4-linux-uclibc-ld: /home/fgretief/src/buildroot/build_sh4/staging_dir/usr/lib/gcc/sh4-linux-uclibc/4.2.1/libgcc.a(_divdi3.o): uses instructions which are incompatible with instructions used in previous modules
/home/fgretief/src/buildroot/build_sh4/staging_dir/usr/bin/sh4-linux-uclibc-ld: failed to merge target specific data of file /home/fgretief/src/buildroot/build_sh4/staging_dir/usr/lib/gcc/sh4-linux-uclibc/4.2.1/libgcc.a(_divdi3.o)
/home/fgretief/src/buildroot/build_sh4/staging_dir/usr/bin/sh4-linux-uclibc-ld: /home/fgretief/src/buildroot/build_sh4/staging_dir/usr/lib/gcc/sh4-linux-uclibc/4.2.1/libgcc.a(_moddi3.o): compiled for a little endian system and target is big endian
/home/fgretief/src/buildroot/build_sh4/staging_dir/usr/bin/sh4-linux-uclibc-ld: /home/fgretief/src/buildroot/build_sh4/staging_dir/usr/lib/gcc/sh4-linux-uclibc/4.2.1/libgcc.a(_moddi3.o): uses instructions which are incompatible with instructions used in previous modules
/home/fgretief/src/buildroot/build_sh4/staging_dir/usr/bin/sh4-linux-uclibc-ld: failed to merge target specific data of file /home/fgretief/src/buildroot/build_sh4/staging_dir/usr/lib/gcc/sh4-linux-uclibc/4.2.1/libgcc.a(_moddi3.o)
/home/fgretief/src/buildroot/build_sh4/staging_dir/usr/bin/sh4-linux-uclibc-ld: /home/fgretief/src/buildroot/build_sh4/staging_dir/usr/lib/gcc/sh4-linux-uclibc/4.2.1/libgcc.a(_udiv_qrnnd_16.o): compiled for a little endian system and target is big endian
/home/fgretief/src/buildroot/build_sh4/staging_dir/usr/bin/sh4-linux-uclibc-ld: /home/fgretief/src/buildroot/build_sh4/staging_dir/usr/lib/gcc/sh4-linux-uclibc/4.2.1/libgcc.a(_udiv_qrnnd_16.o): uses instructions which are incompatible with instructions used in previous modules
/home/fgretief/src/buildroot/build_sh4/staging_dir/usr/bin/sh4-linux-uclibc-ld: failed to merge target specific data of file /home/fgretief/src/buildroot/build_sh4/staging_dir/usr/lib/gcc/sh4-linux-uclibc/4.2.1/libgcc.a(_udiv_qrnnd_16.o)
/home/fgretief/src/buildroot/build_sh4/staging_dir/usr/bin/sh4-linux-uclibc-ld: /home/fgretief/src/buildroot/build_sh4/staging_dir/usr/lib/gcc/sh4-linux-uclibc/4.2.1/libgcc.a(_clz.o): compiled for a little endian system and target is big endian
/home/fgretief/src/buildroot/build_sh4/staging_dir/usr/bin/sh4-linux-uclibc-ld: /home/fgretief/src/buildroot/build_sh4/staging_dir/usr/lib/gcc/sh4-linux-uclibc/4.2.1/libgcc.a(_clz.o): uses instructions which are incompatible with instructions used in previous modules
/home/fgretief/src/buildroot/build_sh4/staging_dir/usr/bin/sh4-linux-uclibc-ld: failed to merge target specific data of file /home/fgretief/src/buildroot/build_sh4/staging_dir/usr/lib/gcc/sh4-linux-uclibc/4.2.1/libgcc.a(_clz.o)
/home/fgretief/src/buildroot/build_sh4/staging_dir/usr/bin/sh4-linux-uclibc-ld: BFD 2.17 assertion fail /home/fgretief/src/buildroot/toolchain_build_sh4/binutils-2.17/bfd/elf32-sh.c:5070
/home/fgretief/src/buildroot/build_sh4/staging_dir/usr/bin/sh4-linux-uclibc-ld: BFD 2.17 assertion fail /home/fgretief/src/buildroot/toolchain_build_sh4/binutils-2.17/bfd/elf32-sh.c:5070
make[2]: *** [lib/libc.so] Error 1
make[1]: *** [lib/libc.so.0] Error 2
make[1]: Leaving directory `/home/fgretief/src/buildroot/toolchain_build_sh4/uClibc-0.9.29'
make: *** [/home/fgretief/src/buildroot/toolchain_build_sh4/uClibc-0.9.29/lib/libc.a] Error 2






 (3) Patch 'uClibc-0.9.29-001-fix-mmap.patch' is a problem. It uses a type '__ulong_t' that is not defined and causes a compile error. See error below. If I replace the type with 'unsigned long' or even '__u_long' then it works.

  CC libc/sysdeps/linux/common/mmap64.os
In file included from ./libpthread/linuxthreads.old/sysdeps/sh/tls.h:23,
                 from ./include/bits/uClibc_errno.h:14,
                 from ./include/errno.h:62,
                 from libc/sysdeps/linux/common/mmap64.c:12:
./libpthread/linuxthreads.old/sysdeps/sh/pt-machine.h:36: warning: C99 inline functions are not supported; using GNU89
./libpthread/linuxthreads.old/sysdeps/sh/pt-machine.h:36: warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute
libc/sysdeps/linux/common/mmap64.c: In function 'mmap64':
libc/sysdeps/linux/common/mmap64.c:66: error: '__ulong_t' undeclared (first use in this function)
libc/sysdeps/linux/common/mmap64.c:66: error: (Each undeclared identifier is reported only once
libc/sysdeps/linux/common/mmap64.c:66: error: for each function it appears in.)
libc/sysdeps/linux/common/mmap64.c:66: error: expected ')' before 'offset'
make[2]: *** [libc/sysdeps/linux/common/mmap64.os] Error 1
make[1]: *** [lib/libc.so.0] Error 2
make[1]: Leaving directory `/home/fgretief/src/buildroot/toolchain_build_sh4/uClibc-0.9.29'
make: *** [/home/fgretief/src/buildroot/toolchain_build_sh4/uClibc-0.9.29/lib/libc.a] Error 2




 (4) While linking BusyBox, the linker is unable to find the sched_getaffinity and sched_setaffinity functions. There is a patch 'uClibc-0.9.29-conditional-sched_affinity.patch' that comment out a piece of the relevant source file. Don't know if it is related to this error. I modified the busybox config file (see diff below) to unset the CONFIG_TASKSET function. This removes the functionality from BusyBox and allow the build to continue. Not ideal if you need that functionality. Propper fix is required.

  LINK busybox_unstripped
miscutils/lib.a(taskset.o): In function `taskset_main':
taskset.c:(.text.taskset_main+0x1b4): undefined reference to `sched_getaffinity'
taskset.c:(.text.taskset_main+0x1c8): undefined reference to `sched_setaffinity'
collect2: ld returned 1 exit status


Index: package/busybox/busybox-1.6.0.config
===================================================================
--- package/busybox/busybox-1.6.0.config (revision 19285)
+++ package/busybox/busybox-1.6.0.config (working copy)
@@ -495,7 +495,7 @@
 # CONFIG_RX is not set
 CONFIG_STRINGS=y
 CONFIG_SETSID=y
-CONFIG_TASKSET=y
+# CONFIG_TASKSET is not set
 CONFIG_FEATURE_TASKSET_FANCY=y
 CONFIG_TIME=y
 CONFIG_WATCHDOG=y
 
(0002672)
zx80user
08-20-07 16:12

The patch (2) in 00002648 above does fix the endianess problem. But then I get this...

#
# Now for the ugly 3.3.x soft float hack...
#
#
# Ok... that's enough of that.
#
touch /home/adrian/buildroot/toolchain_build_sh4/gcc-3.4.6-final/.installed
# These are in /lib, so...
rm -rf /home/adrian/buildroot/project_build_sh4/uclibc/root/usr/lib/libgcc_s*.so*
cp -dpf /home/adrian/buildroot/build_sh4/staging_dir/usr/sh4-linux-uclibc/lib/libgcc_s* /home/adrian/buildroot/project_build_sh4/uclibc/root/lib/
/home/adrian/buildroot/build_sh4/staging_dir/usr/bin/sh4-linux-uclibc-strip --remove-section=.comment --remove-section=.note --strip-unneeded /home/adrian/buildroot/project_build_sh4/uclibc/root/lib/libgcc_s*
/home/adrian/buildroot/build_sh4/staging_dir/usr/bin/sh4-linux-uclibc-strip: /home/adrian/buildroot/project_build_sh4/uclibc/root/lib/libgcc_s.so: File format not recognized
make: *** [/home/adrian/buildroot/toolchain_build_sh4/gcc-3.4.6-final/.libs_installed] Error 1
 
(0002677)
mastag
08-23-07 06:56

#
# Now for the ugly 3.3.x soft float hack...
#
#
# Ok... that's enough of that.
#
touch /home/adrian/buildroot/toolchain_build_sh4/gcc-3.4.6-final/.installed
# These are in /lib, so...
rm -rf /home/adrian/buildroot/project_build_sh4/uclibc/root/usr/lib/libgcc_s*.so*
cp -dpf /home/adrian/buildroot/build_sh4/staging_dir/usr/sh4-linux-uclibc/lib/libgcc_s* /home/adrian/buildroot/project_build_sh4/uclibc/root/lib/
/home/adrian/buildroot/build_sh4/staging_dir/usr/bin/sh4-linux-uclibc-strip --remove-section=.comment --remove-section=.note --strip-unneeded /home/adrian/buildroot/project_build_sh4/uclibc/root/lib/libgcc_s*
/home/adrian/buildroot/build_sh4/staging_dir/usr/bin/sh4-linux-uclibc-strip: /home/adrian/buildroot/project_build_sh4/uclibc/root/lib/libgcc_s.so: File format not recognized
make: *** [/home/adrian/buildroot/toolchain_build_sh4/gcc-3.4.6-final/.libs_installed] Error 1


This can be fixed by editing: buildroot/toolchain/gcc/gcc-uclibc-3.x.mk
--------------------
    #
    # Ok... that's enough of that.
    #
    -mkdir -p $(TARGET_DIR)/usr/lib $(TARGET_DIR)/usr/sbin
    touch $@

$(GCC_BUILD_DIR2)/.libs_installed: $(GCC_BUILD_DIR2)/.installed
ifeq ($(BR2_GCC_SHARED_LIBGCC),y)
    # These are in /lib, so...
    rm -rf $(TARGET_DIR)/usr/lib/libgcc_s*.so*
    -cp -dpf $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib/libgcc_s* $(TARGET_DIR)/lib/
    $(STRIP) --strip-unneeded $(TARGET_DIR)/lib/libgcc_s*
--------------------

You need to add a "-" to the following line:
$(STRIP) --strip-unneeded $(TARGET_DIR)/lib/libgcc_s*
making it look like:
--------------------
    #
    # Ok... that's enough of that.
    #
    -mkdir -p $(TARGET_DIR)/usr/lib $(TARGET_DIR)/usr/sbin
    touch $@

$(GCC_BUILD_DIR2)/.libs_installed: $(GCC_BUILD_DIR2)/.installed
ifeq ($(BR2_GCC_SHARED_LIBGCC),y)
    # These are in /lib, so...
    rm -rf $(TARGET_DIR)/usr/lib/libgcc_s*.so*
    -cp -dpf $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib/libgcc_s* $(TARGET_DIR)/lib/
    -$(STRIP) --strip-unneeded $(TARGET_DIR)/lib/libgcc_s*
--------------------

Then it will build a working toolchain :)
 
(0002688)
fgretief
08-25-07 13:06

Thank to mastag's suggestion, I am now able to compile buildroot for the SH architecture. Below is a patch against r19690 that compiles with gcc 4.2.1 and gcc 3.4.6 for the following targets: sh4, sh4eb, sh3, sh3eb and sh2. Currently only Linux and Busybox were compiled.


Index: toolchain/gcc/gcc-uclibc-3.x.mk
===================================================================
--- toolchain/gcc/gcc-uclibc-3.x.mk (revision 19690)
+++ toolchain/gcc/gcc-uclibc-3.x.mk (working copy)
@@ -317,7 +317,7 @@
     # These are in /lib, so...
     rm -rf $(TARGET_DIR)/usr/lib/libgcc_s*.so*
     -cp -dpf $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib/libgcc_s* $(TARGET_DIR)/lib/
- $(STRIP) --strip-unneeded $(TARGET_DIR)/lib/libgcc_s*
+ -$(STRIP) --strip-unneeded $(TARGET_DIR)/lib/libgcc_s*
 endif
 ifeq ($(BR2_INSTALL_LIBSTDCPP),y)
     -cp -dpf $(STAGING_DIR)/lib/libstdc++.so* $(TARGET_DIR)/usr/lib/
Index: toolchain/gcc/Makefile.in
===================================================================
--- toolchain/gcc/Makefile.in (revision 19690)
+++ toolchain/gcc/Makefile.in (working copy)
@@ -16,6 +16,11 @@
 EXTRA_GCC_CONFIG_OPTIONS+=--disable-libmudflap
 endif
 
+# SH4 GCC configuration
+ifeq ($(strip $(subst ",, $(BR2_sh4))),y)
+EXTRA_GCC_CONFIG_OPTIONS+=--with-multilib-list=m4,m4-nofpu
+endif
+
 ifeq ($(strip $(subst ",, $(BR2_GCC_IS_SNAP))),y)
 #"))
 GCC_SNAP_DATE:=$(strip $(subst ",, $(BR2_GCC_SNAP_DATE)))
Index: toolchain/uClibc/uClibc-0.9.29-001-fix-mmap.patch
===================================================================
--- toolchain/uClibc/uClibc-0.9.29-001-fix-mmap.patch (revision 19690)
+++ toolchain/uClibc/uClibc-0.9.29-001-fix-mmap.patch (working copy)
@@ -84,7 +84,7 @@
 + fd,((__u_quad_t)offset >> MMAP2_PAGE_SHIFT));
 +#else
 + return __syscall_mmap2(addr, len, prot, flags,
-+ fd,((__ulong_t)offset >> MMAP2_PAGE_SHIFT));
++ fd,((__u_long)offset >> MMAP2_PAGE_SHIFT));
 +#endif
  }
  
Index: package/busybox/busybox-1.6.0.config
===================================================================
--- package/busybox/busybox-1.6.0.config (revision 19690)
+++ package/busybox/busybox-1.6.0.config (working copy)
@@ -495,7 +495,7 @@
 # CONFIG_RX is not set
 CONFIG_STRINGS=y
 CONFIG_SETSID=y
-CONFIG_TASKSET=y
+# CONFIG_TASKSET is not set
 CONFIG_FEATURE_TASKSET_FANCY=y
 CONFIG_TIME=y
 CONFIG_WATCHDOG=y
Index: toolchain/uClibc/uclibc.mk
===================================================================
--- toolchain/uClibc/uclibc.mk (revision 19690)
+++ toolchain/uClibc/uclibc.mk (working copy)
@@ -73,7 +73,7 @@
         -e 's/arm/LITTLE/' \
         -e 's/mipsel/LITTLE/' \
         -e 's/mips/BIG/' \
- -e 's/sh[234]eb/BIG/' \
+ -e 's/sh[234].*eb/BIG/' \
         -e 's/sh[234]/LITTLE/' \
 ")
 
@@ -146,6 +146,38 @@
     /bin/echo "# CONFIG_ARM_EABI is not set" >> $(UCLIBC_DIR)/.oldconfig
 endif
 endif
+ifeq ("$(UCLIBC_TARGET_ARCH)","sh")
+ /bin/echo "# CONFIG_SH2A is not set" >> $(UCLIBC_DIR)/.oldconfig
+ /bin/echo "# CONFIG_SH2 is not set" >> $(UCLIBC_DIR)/.oldconfig
+ /bin/echo "# CONFIG_SH3 is not set" >> $(UCLIBC_DIR)/.oldconfig
+ /bin/echo "# CONFIG_SH4 is not set" >> $(UCLIBC_DIR)/.oldconfig
+ifeq ($(BR2_sh2a_nofpueb),y)
+ $(SED) 's,# CONFIG_SH2A is not set,CONFIG_SH2A=y,g' $(UCLIBC_DIR)/.oldconfig
+ /bin/echo "# UCLIBC_FORMAT_FDPIC_ELF is not set" >> $(UCLIBC_DIR)/.oldconfig
+ /bin/echo "# UCLIBC_FORMAT_FLAT is not set" >> $(UCLIBC_DIR)/.oldconfig
+ /bin/echo "# UCLIBC_FORMAT_FLAT_SEP_DATA is not set" >> $(UCLIBC_DIR)/.oldconfig
+ /bin/echo "# UCLIBC_FORMAT_SHARED_FLAT is not set" >> $(UCLIBC_DIR)/.oldconfig
+endif
+ifeq ($(BR2_sh2eb),y)
+ $(SED) 's,# CONFIG_SH2 is not set,CONFIG_SH2=y,g' $(UCLIBC_DIR)/.oldconfig
+ /bin/echo "# UCLIBC_FORMAT_FDPIC_ELF is not set" >> $(UCLIBC_DIR)/.oldconfig
+ /bin/echo "# UCLIBC_FORMAT_FLAT is not set" >> $(UCLIBC_DIR)/.oldconfig
+ /bin/echo "# UCLIBC_FORMAT_FLAT_SEP_DATA is not set" >> $(UCLIBC_DIR)/.oldconfig
+ /bin/echo "# UCLIBC_FORMAT_SHARED_FLAT is not set" >> $(UCLIBC_DIR)/.oldconfig
+endif
+ifeq ($(BR2_sh3eb),y)
+ $(SED) 's,# CONFIG_SH3 is not set,CONFIG_SH3=y,g' $(UCLIBC_DIR)/.oldconfig
+endif
+ifeq ($(BR2_sh3),y)
+ $(SED) 's,# CONFIG_SH3 is not set,CONFIG_SH3=y,g' $(UCLIBC_DIR)/.oldconfig
+endif
+ifeq ($(BR2_sh4eb),y)
+ $(SED) 's,# CONFIG_SH4 is not set,CONFIG_SH4=y,g' $(UCLIBC_DIR)/.oldconfig
+endif
+ifeq ($(BR2_sh4),y)
+ $(SED) 's,# CONFIG_SH4 is not set,CONFIG_SH4=y,g' $(UCLIBC_DIR)/.oldconfig
+endif
+endif
 ifneq ($(UCLIBC_TARGET_ENDIAN),)
     # The above doesn't work for me, so redo
     $(SED) 's/.*\(ARCH_$(UCLIBC_NOT_TARGET_ENDIAN)_ENDIAN\).*/# \1 is not set/g' \
 
(0002690)
Masta-G
08-26-07 11:57

Yeah! :)
Tested the full patch against latest svn and it's working fine.
Running uClinux and busybox on the Sega Dreamcast.

Now it would be nice if it got applied to the trunk so it works out of the box.
 
(0002691)
bernhardf
08-26-07 13:31

If you want to attach a file for me to apply (in whole or in part) then please attach a file that i can save away and look at. Pasted stuff is usually whitespace damaged and thus pretty useless..

TIA
 
(0002693)
bernhardf
08-26-07 13:41

A few notes:

1) I will not turn off taskset since i need it. See docs/README

2)
The hunk against gcc-uclibc-3.x.mk can only be wrong. If we want to build a shared libgcc then libgcc_s *has* to exist. The correct thing to do is to:
Index: toolchain/gcc/gcc-uclibc-4.x.mk
===================================================================
--- toolchain/gcc/gcc-uclibc-4.x.mk (revision 19700)
+++ toolchain/gcc/gcc-uclibc-4.x.mk (working copy)
@@ -340,18 +340,18 @@ $(GCC_BUILD_DIR2)/.libs_installed: $(GCC
 ifeq ($(BR2_GCC_SHARED_LIBGCC),y)
     # These are in /lib, so...
     rm -rf $(TARGET_DIR)/usr/lib/libgcc_s*.so*
- -cp -dpf $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib/libgcc_s* $(TARGET_DIR)/lib/
+ cp -dpf $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib/libgcc_s* $(TARGET_DIR)/lib/
 endif
 ifeq ($(BR2_INSTALL_LIBSTDCPP),y)
- -cp -dpf $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib/libstdc++.so* $(TARGET_DIR)/usr/lib/
+ cp -dpf $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib/libstdc++.so* $(TARGET_DIR)/usr/lib/
 endif
 ifeq ($(BR2_INSTALL_LIBGCJ),y)
- -cp -dpf $(STAGING_DIR)/lib/libgcj.so* $(TARGET_DIR)/lib/
- -cp -dpf $(STAGING_DIR)/lib/lib-org-w3c-dom.so* $(TARGET_DIR)/lib/
- -cp -dpf $(STAGING_DIR)/lib/lib-org-xml-sax.so* $(TARGET_DIR)/lib/
+ cp -dpf $(STAGING_DIR)/lib/libgcj.so* $(TARGET_DIR)/lib/
+ cp -dpf $(STAGING_DIR)/lib/lib-org-w3c-dom.so* $(TARGET_DIR)/lib/
+ cp -dpf $(STAGING_DIR)/lib/lib-org-xml-sax.so* $(TARGET_DIR)/lib/
     mkdir -p $(TARGET_DIR)/usr/lib/security
- -cp -dpf $(STAGING_DIR)/usr/lib/security/libgcj.security $(TARGET_DIR)/usr/lib/security/
- -cp -dpf $(STAGING_DIR)/usr/lib/security/classpath.security $(TARGET_DIR)/usr/lib/security/
+ cp -dpf $(STAGING_DIR)/usr/lib/security/libgcj.security $(TARGET_DIR)/usr/lib/security/
+ cp -dpf $(STAGING_DIR)/usr/lib/security/classpath.security $(TARGET_DIR)/usr/lib/security/
 endif
     touch $@
 
(0002695)
bernhardf
08-26-07 14:02

I've now applied all hunks but that against toolchain/gcc/Makefile.in

Please explain what this hunk does and what part of gcc you are trying to affect.
 
(0002756)
bernhardf
09-19-07 07:08

No feedback within a reasonable amount of time, so i take it that this works now.
Please reopen this bug if you still encounter errors on SuperH

Thanks, all!
 

- Issue History
Date Modified Username Field Change
07-26-07 13:57 fgretief New Issue
07-26-07 13:57 fgretief Status new => assigned
07-26-07 13:57 fgretief Assigned To  => buildroot
07-26-07 17:22 gururaj Note Added: 0002641
07-26-07 17:26 gururaj Note Edited: 0002641
07-27-07 09:18 bernhardf Note Added: 0002643
08-01-07 14:34 fgretief Note Added: 0002648
08-20-07 15:35 zx80user Issue Monitored: zx80user
08-20-07 16:12 zx80user Note Added: 0002672
08-23-07 06:56 mastag Note Added: 0002677
08-25-07 13:06 fgretief Note Added: 0002688
08-26-07 11:57 Masta-G Note Added: 0002690
08-26-07 13:31 bernhardf Note Added: 0002691
08-26-07 13:41 bernhardf Note Added: 0002693
08-26-07 14:02 bernhardf Note Added: 0002695
09-19-07 07:08 bernhardf Status assigned => closed
09-19-07 07:08 bernhardf Note Added: 0002756
09-19-07 07:08 bernhardf Resolution open => fixed


Copyright © 2000 - 2006 Mantis Group
Powered by Mantis Bugtracker