diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2010-11-18 21:10:17 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2010-11-25 20:06:43 +0000 |
commit | a8304622776426526120d02fb42061a8c057ceed (patch) | |
tree | 2c6d370ee72014257e930dafea91da30b30d11f5 /main/libc0.9.32 | |
parent | e008ae5fef2a8400a3b8ad8515f5a29438d538c1 (diff) | |
download | aports-a8304622776426526120d02fb42061a8c057ceed.tar.bz2 aports-a8304622776426526120d02fb42061a8c057ceed.tar.xz |
main/libc0.9.32: support for x86_64
and force ARCH to be set
Diffstat (limited to 'main/libc0.9.32')
-rw-r--r-- | main/libc0.9.32/1.patch | 41 | ||||
-rw-r--r-- | main/libc0.9.32/2.patch | 110 | ||||
-rw-r--r-- | main/libc0.9.32/APKBUILD | 9 | ||||
-rw-r--r-- | main/libc0.9.32/uclibcconfig.x86_64 | 261 |
4 files changed, 420 insertions, 1 deletions
diff --git a/main/libc0.9.32/1.patch b/main/libc0.9.32/1.patch new file mode 100644 index 000000000..49a43df0a --- /dev/null +++ b/main/libc0.9.32/1.patch @@ -0,0 +1,41 @@ +From ca7ec3c7b1a65070d9abbf2414b6a2f24917d863 Mon Sep 17 00:00:00 2001 +From: William Pitcock <nenolod@dereferenced.org> +Date: Wed, 20 Oct 2010 09:41:31 -0500 +Subject: [PATCH 1/2] libc: Fix build with stack protector enabled on x86_64. + +The code used HIDDEN_JUMPTARGET() but these symbols aren't aliased. +So we just replace that with __chk_fail@PLT. +--- + libc/string/x86_64/memcpy.S | 2 +- + libc/string/x86_64/memset.S | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/libc/string/x86_64/memcpy.S b/libc/string/x86_64/memcpy.S +index 6d941e0..f8b9e23 100644 +--- a/libc/string/x86_64/memcpy.S ++++ b/libc/string/x86_64/memcpy.S +@@ -30,7 +30,7 @@ + ENTRY (__memcpy_chk) + cmpq %rdx, %rcx + #if defined __UCLIBC_HAS_SSP__ +- jb HIDDEN_JUMPTARGET (__chk_fail) ++ jb __chk_fail@PLT + #endif + END (__memcpy_chk) + #endif +diff --git a/libc/string/x86_64/memset.S b/libc/string/x86_64/memset.S +index df265f3..38744cf 100644 +--- a/libc/string/x86_64/memset.S ++++ b/libc/string/x86_64/memset.S +@@ -33,7 +33,7 @@ + ENTRY (__memset_chk) + cmpq %rdx, %rcx + #if defined __UCLIBC_HAS_SSP__ +- jb HIDDEN_JUMPTARGET (__chk_fail) ++ jb __chk_fail@PLT + #endif + END (__memset_chk) + #endif +-- +1.7.2.1 + diff --git a/main/libc0.9.32/2.patch b/main/libc0.9.32/2.patch new file mode 100644 index 000000000..57064f545 --- /dev/null +++ b/main/libc0.9.32/2.patch @@ -0,0 +1,110 @@ +From 1560d8c409c802ea06ecb921fcc5a534b70d32d7 Mon Sep 17 00:00:00 2001 +From: William Pitcock <nenolod@dereferenced.org> +Date: Wed, 20 Oct 2010 09:48:33 -0500 +Subject: [PATCH 2/2] libpthread: Fix compilation on x86_64. + +--- + .../sysdeps/unix/sysv/linux/x86_64/lowlevellock.S | 2 +- + .../unix/sysv/linux/x86_64/lowlevelrobustlock.S | 2 +- + .../sysv/linux/x86_64/pthread_cond_timedwait.S | 10 +--------- + .../sysv/linux/x86_64/pthread_rwlock_timedrdlock.S | 2 +- + .../sysv/linux/x86_64/pthread_rwlock_timedwrlock.S | 2 +- + .../sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S | 2 +- + 6 files changed, 6 insertions(+), 14 deletions(-) + +diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S b/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S +index f875323..5f1d11e 100644 +--- a/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S ++++ b/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S +@@ -163,7 +163,7 @@ __lll_timedlock_wait: + cfi_startproc + # ifndef __ASSUME_FUTEX_CLOCK_REALTIME + # ifdef __PIC__ +- cmpl $0, __have_futex_clock_realtime(%rip) ++ cmpl $0, __have_futex_clock_realtime@PLT + # else + cmpl $0, __have_futex_clock_realtime + # endif +diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S b/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S +index 2eb8e29..bfd9a14 100644 +--- a/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S ++++ b/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S +@@ -118,7 +118,7 @@ __lll_robust_timedlock_wait: + cfi_startproc + # ifndef __ASSUME_FUTEX_CLOCK_REALTIME + # ifdef __PIC__ +- cmpl $0, __have_futex_clock_realtime(%rip) ++ cmpl $0, __have_futex_clock_realtime@PLT + # else + cmpl $0, __have_futex_clock_realtime + # endif +diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S b/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S +index 3a965ad..787298d 100644 +--- a/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S ++++ b/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S +@@ -98,7 +98,7 @@ __pthread_cond_timedwait: + 22: + #ifndef __ASSUME_FUTEX_CLOCK_REALTIME + # ifdef __PIC__ +- cmpl $0, __have_futex_clock_realtime(%rip) ++ cmpl $0, __have_futex_clock_realtime@PLT + # else + cmpl $0, __have_futex_clock_realtime + # endif +@@ -437,14 +437,6 @@ __pthread_cond_timedwait: + /* Only clocks 0 and 1 are allowed so far. Both are handled in the + kernel. */ + leaq 32(%rsp), %rsi +-# ifdef SHARED +- movq __vdso_clock_gettime@GOTPCREL(%rip), %rax +- movq (%rax), %rax +- PTR_DEMANGLE (%rax) +- jz 26f +- call *%rax +- jmp 27f +-# endif + 26: movl $__NR_clock_gettime, %eax + syscall + 27: +diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S b/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S +index 3629ffb..5329ddd 100644 +--- a/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S ++++ b/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S +@@ -96,7 +96,7 @@ pthread_rwlock_timedrdlock: + 11: + #ifndef __ASSUME_FUTEX_CLOCK_REALTIME + # ifdef __PIC__ +- cmpl $0, __have_futex_clock_realtime(%rip) ++ cmpl $0, __have_futex_clock_realtime@PLT + # else + cmpl $0, __have_futex_clock_realtime + # endif +diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S b/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S +index 23e1ee1..e31c014 100644 +--- a/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S ++++ b/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S +@@ -93,7 +93,7 @@ pthread_rwlock_timedwrlock: + 11: + #ifndef __ASSUME_FUTEX_CLOCK_REALTIME + # ifdef __PIC__ +- cmpl $0, __have_futex_clock_realtime(%rip) ++ cmpl $0, __have_futex_clock_realtime@PLT + # else + cmpl $0, __have_futex_clock_realtime + # endif +diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S b/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S +index 704a222..7dfc788 100644 +--- a/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S ++++ b/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S +@@ -61,7 +61,7 @@ sem_timedwait: + + #ifndef __ASSUME_FUTEX_CLOCK_REALTIME + # ifdef __PIC__ +- cmpl $0, __have_futex_clock_realtime(%rip) ++ cmpl $0, __have_futex_clock_realtime@PLT + # else + cmpl $0, __have_futex_clock_realtime + # endif +-- +1.7.2.1 + diff --git a/main/libc0.9.32/APKBUILD b/main/libc0.9.32/APKBUILD index 00d8b114a..8e816d162 100644 --- a/main/libc0.9.32/APKBUILD +++ b/main/libc0.9.32/APKBUILD @@ -7,6 +7,7 @@ pkgrel=2 pkgdesc="C library for developing embedded Linux systems" url=http://uclibc.org license="LGPL-2" +arch="x86 x86_64" options= subpackages="uclibc-dev:dev uclibc-utils:utils libthread_db" depends_dev="linux-headers=>2.6.32" @@ -23,11 +24,14 @@ source="http://build.alpinelinux.org:8010/distfiles/$_snapfile 0001-create-DEVEL_PREFIX-MULTILIB_DIR-dir-rather-than-DEV.patch 0001-ntpl-fix-static-linking-by-not-leaking-SSP_ALL_CFLAG.patch ldso-x86_64-support-protected-symbols.patch + 1.patch + 2.patch uclibcconfig.x86 + uclibcconfig.x86_64 uclibcconfig.i486 " -_config="$srcdir"/uclibcconfig.${ARCH:-x86} +_config="$srcdir"/uclibcconfig.${CARCH} _builddir="$srcdir"/master snapshot() { @@ -118,5 +122,8 @@ md5sums="dad1117e11d0c709263e5b26a74db9ce libc0.9.32-0.9.32_alpha0_git101101102 9dd8192227f54d6d3ccb49dc54137ff3 0001-create-DEVEL_PREFIX-MULTILIB_DIR-dir-rather-than-DEV.patch 337f4fa134307bbdac026d6ff97df5fc 0001-ntpl-fix-static-linking-by-not-leaking-SSP_ALL_CFLAG.patch 84a2786fb4c89bee56607dd09b538d7b ldso-x86_64-support-protected-symbols.patch +8f55efc31c41bf70d99006a7d2f7fe1e 1.patch +350a608e3d3b148af882f6e074225465 2.patch 145aaeb1833159397cfac9902e3877ab uclibcconfig.x86 +da650c2c6a82e0b153e96774da388935 uclibcconfig.x86_64 145aaeb1833159397cfac9902e3877ab uclibcconfig.i486" diff --git a/main/libc0.9.32/uclibcconfig.x86_64 b/main/libc0.9.32/uclibcconfig.x86_64 new file mode 100644 index 000000000..c71485493 --- /dev/null +++ b/main/libc0.9.32/uclibcconfig.x86_64 @@ -0,0 +1,261 @@ +# +# Automatically generated make config: don't edit +# Version: 0.9.32-git +# Thu Nov 18 19:45:51 2010 +# +# TARGET_alpha is not set +# TARGET_arm is not set +# TARGET_avr32 is not set +# TARGET_bfin 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 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=y +# TARGET_xtensa is not set + +# +# Target Architecture Features and Options +# +TARGET_ARCH="x86_64" +FORCE_OPTIONS_FOR_ARCH=y +# CONFIG_GENERIC_386 is not set +# CONFIG_386 is not set +# CONFIG_486 is not set +# CONFIG_586 is not set +# CONFIG_586MMX is not set +# CONFIG_686 is not set +# CONFIG_PENTIUMII is not set +# CONFIG_PENTIUMIII is not set +# CONFIG_PENTIUM4 is not set +# CONFIG_K6 is not set +# CONFIG_K7 is not set +# CONFIG_ELAN is not set +# CONFIG_CRUSOE is not set +# CONFIG_WINCHIPC6 is not set +# CONFIG_WINCHIP2 is not set +# CONFIG_CYRIXIII is not set +# CONFIG_NEHEMIAH is not set +TARGET_SUBARCH="" + +# +# Using ELF file format +# +ARCH_LITTLE_ENDIAN=y + +# +# Using Little Endian +# +ARCH_HAS_MMU=y +ARCH_USE_MMU=y +UCLIBC_HAS_FLOATS=y +UCLIBC_HAS_FPU=y +DO_C99_MATH=y +DO_XSI_MATH=y +UCLIBC_HAS_FENV=y +UCLIBC_HAS_LONG_DOUBLE_MATH=y +KERNEL_HEADERS="/usr/include" +HAVE_DOT_CONFIG=y + +# +# General Library Settings +# +# HAVE_NO_PIC is not set +DOPIC=y +# ARCH_HAS_NO_SHARED is not set +# ARCH_HAS_NO_LDSO is not set +HAVE_SHARED=y +FORCE_SHAREABLE_TEXT_SEGMENTS=y +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" +UCLIBC_STATIC_LDCONFIG=y +LDSO_RUNPATH=y +LDSO_SEARCH_INTERP_PATH=y +UCLIBC_CTOR_DTOR=y +LDSO_GNU_HASH_SUPPORT=y +# HAS_NO_THREADS is not set +# LINUXTHREADS_OLD is not set +# LINUXTHREADS_NEW is not set +UCLIBC_HAS_THREADS_NATIVE=y +UCLIBC_HAS_THREADS=y +UCLIBC_HAS_TLS=y +PTHREADS_DEBUG_SUPPORT=y +UCLIBC_HAS_SYSLOG=y +UCLIBC_HAS_LFS=y +# MALLOC is not set +# MALLOC_SIMPLE is not set +MALLOC_STANDARD=y +MALLOC_GLIBC_COMPAT=y +UCLIBC_DYNAMIC_ATEXIT=y +COMPAT_ATEXIT=y +UCLIBC_SUSV3_LEGACY=y +UCLIBC_SUSV3_LEGACY_MACROS=y +UCLIBC_SUSV4_LEGACY=y +# UCLIBC_HAS_STUBS is not set +UCLIBC_HAS_SHADOW=y +UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y +UCLIBC_HAS___PROGNAME=y +UCLIBC_HAS_PTY=y +ASSUME_DEVPTS=y +UNIX98PTY_ONLY=y +# UCLIBC_HAS_GETPT is not set +UCLIBC_HAS_LIBUTIL=y +UCLIBC_HAS_TM_EXTENSIONS=y +UCLIBC_HAS_TZ_CACHING=y +UCLIBC_HAS_TZ_FILE=y +UCLIBC_HAS_TZ_FILE_READ_MANY=y +UCLIBC_TZ_FILE_PATH="/etc/TZ" +UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y + +# +# Advanced Library Settings +# +UCLIBC_PWD_BUFFER_SIZE=256 +UCLIBC_GRP_BUFFER_SIZE=256 + +# +# Support various families of functions +# +UCLIBC_LINUX_MODULE_24=y +UCLIBC_LINUX_SPECIFIC=y +UCLIBC_HAS_GNU_ERROR=y +UCLIBC_BSD_SPECIFIC=y +UCLIBC_HAS_BSD_ERR=y +UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y +UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL=y +# UCLIBC_NTP_LEGACY is not set +UCLIBC_SV4_DEPRECATED=y +UCLIBC_HAS_REALTIME=y +UCLIBC_HAS_ADVANCED_REALTIME=y +UCLIBC_HAS_EPOLL=y +UCLIBC_HAS_XATTR=y +UCLIBC_HAS_PROFILING=y +UCLIBC_HAS_CRYPT_IMPL=y +UCLIBC_HAS_CRYPT=y +UCLIBC_HAS_NETWORK_SUPPORT=y +UCLIBC_HAS_SOCKET=y +UCLIBC_HAS_IPV4=y +UCLIBC_HAS_IPV6=y +UCLIBC_HAS_RPC=y +UCLIBC_HAS_FULL_RPC=y +UCLIBC_HAS_REENTRANT_RPC=y +UCLIBC_USE_NETLINK=y +UCLIBC_SUPPORT_AI_ADDRCONFIG=y +UCLIBC_HAS_BSD_RES_CLOSE=y +UCLIBC_HAS_COMPAT_RES_STATE=y +# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set +UCLIBC_HAS_LIBRESOLV_STUB=y +# UCLIBC_HAS_LIBNSL_STUB is not set + +# +# String and Stdio Support +# +UCLIBC_HAS_STRING_GENERIC_OPT=y +UCLIBC_HAS_STRING_ARCH_OPT=y +UCLIBC_HAS_CTYPE_TABLES=y +UCLIBC_HAS_CTYPE_SIGNED=y +# UCLIBC_HAS_CTYPE_UNSAFE is not set +UCLIBC_HAS_CTYPE_CHECKED=y +# UCLIBC_HAS_CTYPE_ENFORCED is not set +UCLIBC_HAS_WCHAR=y +# UCLIBC_HAS_LOCALE is not set +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 +# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set +UCLIBC_HAS_STDIO_BUFSIZ_4096=y +# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set +UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y +# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set +# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set +# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set +UCLIBC_HAS_STDIO_GETC_MACRO=y +UCLIBC_HAS_STDIO_PUTC_MACRO=y +UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y +# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set +UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y +UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y +UCLIBC_HAS_PRINTF_M_SPEC=y +UCLIBC_HAS_ERRNO_MESSAGES=y +# UCLIBC_HAS_SYS_ERRLIST is not set +UCLIBC_HAS_SIGNUM_MESSAGES=y +# UCLIBC_HAS_SYS_SIGLIST is not set +UCLIBC_HAS_GNU_GETOPT=y +UCLIBC_HAS_STDIO_FUTEXES=y +UCLIBC_HAS_GNU_GETSUBOPT=y + +# +# Big and Tall +# +UCLIBC_HAS_REGEX=y +UCLIBC_HAS_REGEX_OLD=y +UCLIBC_HAS_FNMATCH=y +# UCLIBC_HAS_FNMATCH_OLD is not set +UCLIBC_HAS_WORDEXP=y +UCLIBC_HAS_NFTW=y +UCLIBC_HAS_FTW=y +UCLIBC_HAS_GLOB=y +UCLIBC_HAS_GNU_GLOB=y +# UCLIBC_HAS_UTMPX is not set + +# +# Library Installation Options +# +RUNTIME_PREFIX="/" +DEVEL_PREFIX="/usr" +MULTILIB_DIR="lib" +# HARDWIRED_ABSPATH is not set + +# +# Security options +# +UCLIBC_HAS_ARC4RANDOM=y +# HAVE_NO_SSP is not set +UCLIBC_HAS_SSP=y +UCLIBC_HAS_SSP_COMPAT=y +# SSP_QUICK_CANARY is not set +# PROPOLICE_BLOCK_ABRT is not set +PROPOLICE_BLOCK_SEGV=y +UCLIBC_BUILD_SSP=y +UCLIBC_BUILD_RELRO=y +UCLIBC_BUILD_NOW=y +UCLIBC_BUILD_NOEXECSTACK=y + +# +# uClibc development/debugging options +# +CROSS_COMPILER_PREFIX="" +UCLIBC_EXTRA_CFLAGS="" +# DODEBUG is not set +DOSTRIP=y +# DOASSERTS is not set +# SUPPORT_LD_DEBUG is not set +# SUPPORT_LD_DEBUG_EARLY is not set +# UCLIBC_MALLOC_DEBUGGING is not set +WARNINGS="-Wall" +EXTRA_WARNINGS=y +# DOMULTI is not set +# UCLIBC_MJN3_ONLY is not set |