User:Jbilyk: Difference between revisions

From Alpine Linux
m (snippet)
 
(5 intermediate revisions by the same user not shown)
Line 32: Line 32:
<pre>
<pre>
unpack uclibc0.9.32 sources
unpack uclibc0.9.32 sources
sed -i -e "s/^ABI_VERSION.*/ABI_VERSION := 0.9.32/" -e "s/-Wold-style-declaration//g" Rules.mak
KERNEL_HEADERS=/usr/local/src/linux-3.0.4/include
KERNEL_HEADERS=/usr/local/src/linux-3.0.4/include
wget http://git.alpinelinux.org/cgit/aports/tree/main/libc0.9.32/uclibcconfig.arm -O /usr/local/src/uClibc-0.9.32/.config
CC=arm-linux-gcc
CC=arm-linux-gcc
PATH=${PATH}:/usr/local/armtoolchain/bin
PATH=${PATH}:/usr/local/armtoolchain/bin
cd ~
git clone git://git.alpinelinux.org/aports
cp -a ~/aports/main/lib0.9.32/*.patch /usr/local/src/uClibc-0.9.32/
cd /usr/local/src/uClibc-0.9.32
for i in `ls *.patch`; do patch -p1 -i $i; done
sed -i -e "s/^ABI_VERSION.*/ABI_VERSION := 0.9.32/" -e "s/-Wold-style-declaration//g" Rules.mak
wget http://git.alpinelinux.org/cgit/aports/tree/main/libc0.9.32/uclibcconfig.arm -O /usr/local/src/uClibc-0.9.32/.config
make silentoldconfig
make silentoldconfig
make -j1 pregen KERNEL_HEADERS="/usr/local/src/linux-3.0.4/include"
make all CROSS=arm-linux-
</pre>
</pre>
That last make command didn't go over so well...
That last make command didn't go over so well:
 
Attempt #2 is to use buildroot (even though I think for some reason that it doesn't/won't work on Alpine...) with the following config:


<pre>
<pre>
buildarm-edge:/usr/local/src/uClibc-0.9.32$ make all CROSS=arm-linux-
  CC ldso/ldso/ldso.oS
In file included from ./ldso/include/dl-string.h:11:0,
                from ./ldso/include/ldso.h:42,
                from ldso/ldso/ldso.c:33:
./ldso/ldso/arm/dl-sysdep.h: In function 'elf_machine_load_address':
./ldso/ldso/arm/dl-sysdep.h:119:37: warning: taking address of expression of type 'void' [enabled by default]
In file included from ldso/ldso/ldso.c:42:0:
ldso/ldso/dl-tls.c: In function 'init_tls':
ldso/ldso/dl-tls.c:1028:1: error: '__ARM_NR_set_tls' undeclared (first use in this function)
ldso/ldso/dl-tls.c:1028:1: note: each undeclared identifier is reported only once for each function it appears in
In file included from ldso/ldso/ldso.c:46:0:
ldso/ldso/arm/elfinterp.c: In function '_dl_linux_resolver':
ldso/ldso/arm/elfinterp.c:72:11: warning: assignment makes integer from pointer without a cast [enabled by default]
ldso/ldso/arm/elfinterp.c: In function '_dl_do_reloc':
ldso/ldso/arm/elfinterp.c:205:15: warning: assignment makes integer from pointer without a cast [enabled by default]
ldso/ldso/arm/elfinterp.c:191:19: warning: unused variable 'def' [-Wunused-variable]
ldso/ldso/ldso.c: In function '_dl_get_ready_to_run':
ldso/ldso/ldso.c:1011:1: error: '__ARM_NR_set_tls' undeclared (first use in this function)
make: *** [ldso/ldso/ldso.oS] Error 1


BR2_HAVE_DOT_CONFIG=y
</pre>
BR2_arm=y
BR2_generic_arm=y


BR2_ARM_TYPE="GENERIC_ARM"
<pre>
BR2_ARM_EABI=y
buildarm-edge:/usr/local/src/uClibc-0.9.32$ diff ./.config /home/jbilyk/aports/main/libc0.9.32/uclibcconfig.arm
BR2_ARCH="arm"
--- ./.config
BR2_ENDIAN="LITTLE"
+++ /home/jbilyk/aports/main/libc0.9.32/uclibcconfig.arm
BR2_GCC_TARGET_ABI="aapcs-linux"
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Version: 0.9.32
-# Thu Sep 22 02:11:57 2011
+# Version: 0.9.32-rc3
+# Fri Mar 18 13:13:20 2011
#
# TARGET_alpha is not set
TARGET_arm=y
@@ -71,7 +71,7 @@
DO_C99_MATH=y
DO_XSI_MATH=y
UCLIBC_HAS_FENV=y
-KERNEL_HEADERS="/usr/local/src/linux-3.0.4/include"
+KERNEL_HEADERS="/usr/include"
HAVE_DOT_CONFIG=y


BR2_WGET="wget --passive-ftp -nd -t 3"
#
BR2_SVN="svn"
@@ -231,7 +231,7 @@
BR2_BZR="bzr"
RUNTIME_PREFIX="/"
BR2_GIT="git"
DEVEL_PREFIX="/usr"
BR2_ZCAT="gzip -d -c"
MULTILIB_DIR="lib"
BR2_BZCAT="bzcat"
-# HARDWIRED_ABSPATH is not set
BR2_XZCAT="xzcat"
+# HARDWIRED_ABSPATH is not set=y
BR2_TAR_OPTIONS=""
BR2_DL_DIR="$(TOPDIR)/dl"
BR2_HOST_DIR="$(BASE_DIR)/host"


BR2_PRIMARY_SITE=""
#
BR2_BACKUP_SITE="http://sources.buildroot.net/"
# Security options
BR2_SOURCEFORGE_MIRROR="kent"
@@ -252,7 +252,7 @@
BR2_KERNEL_MIRROR="http://mirror.csclub.uwaterloo.ca/kernel.org/"
#
BR2_GNU_MIRROR="http://ftp.gnu.org/pub/gnu"
# uClibc development/debugging options
BR2_DEBIAN_MIRROR="http://ftp.debian.org"
#
BR2_JLEVEL=4
-CROSS_COMPILER_PREFIX="/usr/local/src/armtoolchain"
BR2_STRIP_none=y
+CROSS_COMPILER_PREFIX=""
BR2_OPTIMIZE_S=y
UCLIBC_EXTRA_CFLAGS=""
# DODEBUG is not set
DOSTRIP=y
</pre>


BR2_TOOLCHAIN_BUILDROOT=y
Possible: http://www.mail-archive.com/uclibc@uclibc.org/msg00677.html


BR2_KERNEL_HEADERS_3_0=y
TODO (once the build is working):
BR2_DEFAULT_KERNEL_HEADERS="3.0.4"
* Rebuild gcc w/ all languages (not just C)
 
* Start build aports
BR2_UCLIBC_VERSION_0_9_32=y
BR2_UCLIBC_VERSION_STRING="0.9.32"
BR2_UCLIBC_CONFIG="toolchain/uClibc/uClibc-0.9.32.config"
 
BR2_BINUTILS_VERSION_2_21_1=y
BR2_BINUTILS_VERSION="2.21.1"
BR2_BINUTILS_EXTRA_CONFIG_OPTIONS=""
 
BR2_GCC_VERSION_4_6_X=y
BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE=y
BR2_GCC_VERSION="4.6.1"
BR2_EXTRA_GCC_CONFIG_OPTIONS=""
BR2_GCC_SHARED_LIBGCC=y
BR2_GCC_ENABLE_TLS=y
 
BR2_INSTALL_LIBSTDCPP=y
BR2_TOOLCHAIN_HAS_THREADS=y
BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDS=y
BR2_NEEDS_GETTEXT=y
BR2_USE_MMU=y
BR2_PREFER_SOFT_FLOAT=y
BR2_SOFT_FLOAT=y
BR2_TARGET_OPTIMIZATION="-pipe"
BR2_TARGET_LDFLAGS=""
 
BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_PTHREADS_NATIVE=y
BR2_ELF2FLT=y
 
BR2_TARGET_GENERIC_HOSTNAME="buildroot"
BR2_TARGET_GENERIC_ISSUE="Welcome to Buildroot"
BR2_ROOTFS_DEVICE_CREATION_STATIC=y
BR2_ROOTFS_DEVICE_TABLE="target/generic/device_table.txt"
BR2_ROOTFS_STATIC_DEVICE_TABLE="target/generic/device_table_dev.txt"
BR2_ROOTFS_SKELETON_DEFAULT=y
BR2_TARGET_GENERIC_GETTY_PORT="ttyS0"
BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200=y
BR2_TARGET_GENERIC_GETTY_BAUDRATE="115200"
BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW=y
BR2_ROOTFS_POST_BUILD_SCRIPT=""
 
BR2_PACKAGE_BUSYBOX=y
BR2_BUSYBOX_VERSION_1_18_X=y
BR2_BUSYBOX_VERSION="1.18.5"
BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-1.18.x.config"
BR2_PACKAGE_CUSTOMIZE=y
 
BR2_TARGET_ROOTFS_SQUASHFS=y
BR2_TARGET_ROOTFS_SQUASHFS4=y
BR2_TARGET_ROOTFS_SQUASHFS4_GZIP=y
BR2_TARGET_ROOTFS_TAR=y
BR2_TARGET_ROOTFS_TAR_NONE=y
BR2_TARGET_ROOTFS_TAR_OPTIONS=""
</pre>

Latest revision as of 21:08, 21 September 2011

ARM port progress

Process so far:

Binutils:

binutils-2.21.1a.tar.bz2 with the following patch:
http://git.yoctoproject.org/cgit.cgi/poky/plain/meta/recipes-devtools/binutils/binutils/clone-shadow.patch
apk add alpine-sdk zlib-dev
./configure --target=arm-linux --prefix=/usr/local/armtoolchain
make
make install

stage1:

unpack 3.0.4 kernel sources
modify makefile: SUBARCH = arm
apk add ncurses-dev
make menuconfig  (ARM Ltd. Versatile family)
apk add gmp-dev mpfr-dev libmpc-dev
download & unpack gcc-4.6.1 sources
./configure --target=arm-linux --prefix=/usr/local/armtoolchain --with-headers=/usr/local/src/linux-3.0.4/include --enable-languages=c --disable-threads --disable-shared
make all-gcc
make install-gcc

stage2:

unpack uclibc0.9.32 sources
KERNEL_HEADERS=/usr/local/src/linux-3.0.4/include
CC=arm-linux-gcc
PATH=${PATH}:/usr/local/armtoolchain/bin
cd ~
git clone git://git.alpinelinux.org/aports
cp -a ~/aports/main/lib0.9.32/*.patch /usr/local/src/uClibc-0.9.32/
cd /usr/local/src/uClibc-0.9.32
for i in `ls *.patch`; do patch -p1 -i $i; done
sed -i -e "s/^ABI_VERSION.*/ABI_VERSION := 0.9.32/" -e "s/-Wold-style-declaration//g" Rules.mak
wget http://git.alpinelinux.org/cgit/aports/tree/main/libc0.9.32/uclibcconfig.arm -O /usr/local/src/uClibc-0.9.32/.config
make silentoldconfig
make all CROSS=arm-linux-

That last make command didn't go over so well:

buildarm-edge:/usr/local/src/uClibc-0.9.32$ make all CROSS=arm-linux-
  CC ldso/ldso/ldso.oS
In file included from ./ldso/include/dl-string.h:11:0,
                 from ./ldso/include/ldso.h:42,
                 from ldso/ldso/ldso.c:33:
./ldso/ldso/arm/dl-sysdep.h: In function 'elf_machine_load_address':
./ldso/ldso/arm/dl-sysdep.h:119:37: warning: taking address of expression of type 'void' [enabled by default]
In file included from ldso/ldso/ldso.c:42:0:
ldso/ldso/dl-tls.c: In function 'init_tls':
ldso/ldso/dl-tls.c:1028:1: error: '__ARM_NR_set_tls' undeclared (first use in this function)
ldso/ldso/dl-tls.c:1028:1: note: each undeclared identifier is reported only once for each function it appears in
In file included from ldso/ldso/ldso.c:46:0:
ldso/ldso/arm/elfinterp.c: In function '_dl_linux_resolver':
ldso/ldso/arm/elfinterp.c:72:11: warning: assignment makes integer from pointer without a cast [enabled by default]
ldso/ldso/arm/elfinterp.c: In function '_dl_do_reloc':
ldso/ldso/arm/elfinterp.c:205:15: warning: assignment makes integer from pointer without a cast [enabled by default]
ldso/ldso/arm/elfinterp.c:191:19: warning: unused variable 'def' [-Wunused-variable]
ldso/ldso/ldso.c: In function '_dl_get_ready_to_run':
ldso/ldso/ldso.c:1011:1: error: '__ARM_NR_set_tls' undeclared (first use in this function)
make: *** [ldso/ldso/ldso.oS] Error 1

buildarm-edge:/usr/local/src/uClibc-0.9.32$ diff ./.config /home/jbilyk/aports/main/libc0.9.32/uclibcconfig.arm
--- ./.config
+++ /home/jbilyk/aports/main/libc0.9.32/uclibcconfig.arm
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Version: 0.9.32
-# Thu Sep 22 02:11:57 2011
+# Version: 0.9.32-rc3
+# Fri Mar 18 13:13:20 2011
 #
 # TARGET_alpha is not set
 TARGET_arm=y
@@ -71,7 +71,7 @@
 DO_C99_MATH=y
 DO_XSI_MATH=y
 UCLIBC_HAS_FENV=y
-KERNEL_HEADERS="/usr/local/src/linux-3.0.4/include"
+KERNEL_HEADERS="/usr/include"
 HAVE_DOT_CONFIG=y

 #
@@ -231,7 +231,7 @@
 RUNTIME_PREFIX="/"
 DEVEL_PREFIX="/usr"
 MULTILIB_DIR="lib"
-# HARDWIRED_ABSPATH is not set
+# HARDWIRED_ABSPATH is not set=y

 #
 # Security options
@@ -252,7 +252,7 @@
 #
 # uClibc development/debugging options
 #
-CROSS_COMPILER_PREFIX="/usr/local/src/armtoolchain"
+CROSS_COMPILER_PREFIX=""
 UCLIBC_EXTRA_CFLAGS=""
 # DODEBUG is not set
 DOSTRIP=y

Possible: http://www.mail-archive.com/uclibc@uclibc.org/msg00677.html

TODO (once the build is working):

  • Rebuild gcc w/ all languages (not just C)
  • Start build aports