rpms/busybox/devel uClibc-0.9.30.patch, NONE, 1.1 uClibc.config, NONE, 1.1 .cvsignore, 1.27, 1.28 busybox.spec, 1.92, 1.93 sources, 1.27, 1.28

Ivana Varekova varekova at fedoraproject.org
Mon Feb 9 12:15:36 UTC 2009


Author: varekova

Update of /cvs/pkgs/rpms/busybox/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv30607

Modified Files:
	.cvsignore busybox.spec sources 
Added Files:
	uClibc-0.9.30.patch uClibc.config 
Log Message:
- use uClibc nstead of glibc for static build - thanks Denys Vlasenko


uClibc-0.9.30.patch:

--- NEW FILE uClibc-0.9.30.patch ---
diff -urpN uClibc-0.9.30/libc/sysdeps/linux/i386/bits/kernel_types.h uClibc-0.9.30/libc/sysdeps/linux/i386/bits/kernel_types.h
--- uClibc-0.9.30/libc/sysdeps/linux/i386/bits/kernel_types.h	2008-07-23 13:23:36.000000000 +0200
+++ uClibc-0.9.30/libc/sysdeps/linux/i386/bits/kernel_types.h	2009-01-21 17:26:41.000000000 +0100
@@ -7,9 +7,15 @@
 
 /* a hack for compiling a 32 bit user space with 64 bit
  * kernel on x86_64  */
-#if !defined(__ARCH_I386_POSIX_TYPES_H) && !defined(_ASM_X86_64_POSIX_TYPES_H)
-#define _ASM_X86_64_POSIX_TYPES_H
+#if !defined(__ARCH_I386_POSIX_TYPES_H) \
+ && !defined(_ASM_X86_64_POSIX_TYPES_H) \
+ && !defined(_ASM_X86_POSIX_TYPES_32_H) \
+ && !defined(_ASM_X86_POSIX_TYPES_64_H)
+
 #define __ARCH_I386_POSIX_TYPES_H
+#define _ASM_X86_64_POSIX_TYPES_H
+#define _ASM_X86_POSIX_TYPES_32_H
+#define _ASM_X86_POSIX_TYPES_64_H
 
 typedef unsigned short	__kernel_dev_t;
 typedef unsigned long	__kernel_ino_t;
@@ -45,4 +51,4 @@ typedef struct {
 #endif
 } __kernel_fsid_t;
 
-#endif /* __ARCH_I386_POSIX_TYPES_H */
+#endif
diff -urpN uClibc-0.9.30/libc/sysdeps/linux/x86_64/bits/kernel_types.h uClibc-0.9.30/libc/sysdeps/linux/x86_64/bits/kernel_types.h
--- uClibc-0.9.30/libc/sysdeps/linux/x86_64/bits/kernel_types.h	2008-07-23 13:23:36.000000000 +0200
+++ uClibc-0.9.30/libc/sysdeps/linux/x86_64/bits/kernel_types.h	2009-01-21 17:36:10.000000000 +0100
@@ -4,8 +4,11 @@
  * our private content, and not the kernel header, will win.
  *  -Erik
  */
-#ifndef _ASM_X86_64_POSIX_TYPES_H
+#if !defined(_ASM_X86_64_POSIX_TYPES_H) \
+ && !defined(_ASM_X86_POSIX_TYPES_64_H)
+
 #define _ASM_X86_64_POSIX_TYPES_H
+#define _ASM_X86_POSIX_TYPES_64_H
 
 typedef unsigned long	__kernel_dev_t;
 typedef unsigned long	__kernel_ino_t;
@@ -41,4 +44,4 @@ typedef struct {
 #endif
 } __kernel_fsid_t;
 
-#endif /* _ASM_X86_64_POSIX_TYPES_H */
+#endif


--- NEW FILE uClibc.config ---
#
# Target Architecture Features and Options
#
FORCE_OPTIONS_FOR_ARCH=y
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
UCLIBC_HAS_FENV=y
UCLIBC_HAS_LONG_DOUBLE_MATH=y
KERNEL_HEADERS="./kernel-include"
HAVE_DOT_CONFIG=y

#
# General Library Settings
#
# HAVE_NO_PIC is not set
# DOPIC is not set
# ARCH_HAS_NO_SHARED is not set
# ARCH_HAS_NO_LDSO is not set
# HAVE_SHARED is not set
UCLIBC_CTOR_DTOR=y
# HAS_NO_THREADS is not set
# UCLIBC_HAS_THREADS is not set
UCLIBC_HAS_SYSLOG=y
UCLIBC_HAS_LFS=y
# MALLOC is not set
# MALLOC_SIMPLE is not set
MALLOC_STANDARD=y
# MALLOC_GLIBC_COMPAT is not set
UCLIBC_DYNAMIC_ATEXIT=y
# COMPAT_ATEXIT is not set
# UCLIBC_SUSV3_LEGACY is not set
# UCLIBC_SUSV3_LEGACY_MACROS is not set
# UCLIBC_HAS_STUBS is not set
UCLIBC_HAS_SHADOW=y
# UCLIBC_HAS_PROGRAM_INVOCATION_NAME is not set
UCLIBC_HAS_PTY=y
ASSUME_DEVPTS=y
UNIX98PTY_ONLY=y
UCLIBC_HAS_GETPT=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"

#
# 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=y
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 is not set
# UCLIBC_HAS_BSD_RES_CLOSE 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=y
# UCLIBC_HAS_CTYPE_CHECKED is not set
# UCLIBC_HAS_CTYPE_ENFORCED is not set
# UCLIBC_HAS_WCHAR is not set
# UCLIBC_HAS_LOCALE is not set
# UCLIBC_HAS_HEXADECIMAL_FLOATS is not set
# UCLIBC_HAS_GLIBC_CUSTOM_PRINTF is not set
# USE_OLD_VFPRINTF is not set
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=y
# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
# UCLIBC_HAS_STDIO_BUFSIZ_4096 is not set
# 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 is not set
# UCLIBC_HAS_GLIBC_CUSTOM_STREAMS is not set
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_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=y
UCLIBC_HAS_WORDEXP=y
UCLIBC_HAS_FTW=y
UCLIBC_HAS_GLOB=y
# UCLIBC_HAS_GNU_GLOB is not set

#
# Library Installation Options
#
RUNTIME_PREFIX="/lib_uc"
DEVEL_PREFIX="./installed"

#
# Security options
#
# UCLIBC_HAS_ARC4RANDOM is not set
# HAVE_NO_SSP is not set
# UCLIBC_HAS_SSP is not set
UCLIBC_BUILD_NOEXECSTACK=y

#
# uClibc development/debugging options
#
CROSS_COMPILER_PREFIX=""
UCLIBC_EXTRA_CFLAGS=""
# DODEBUG is not set
DOSTRIP=y
# DOASSERTS is not set
# UCLIBC_MALLOC_DEBUGGING is not set
WARNINGS="-Wall"
# EXTRA_WARNINGS is not set
# DOMULTI is not set
# UCLIBC_MJN3_ONLY is not set


Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/busybox/devel/.cvsignore,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- .cvsignore	19 Jan 2009 10:55:38 -0000	1.27
+++ .cvsignore	9 Feb 2009 12:15:05 -0000	1.28
@@ -1 +1,2 @@
 busybox-1.13.2.tar.bz2
+uClibc-0.9.30.tar.bz2


Index: busybox.spec
===================================================================
RCS file: /cvs/pkgs/rpms/busybox/devel/busybox.spec,v
retrieving revision 1.92
retrieving revision 1.93
diff -u -r1.92 -r1.93
--- busybox.spec	19 Jan 2009 10:55:38 -0000	1.92
+++ busybox.spec	9 Feb 2009 12:15:05 -0000	1.93
@@ -1,19 +1,21 @@
 Summary: Statically linked binary providing simplified versions of system commands
 Name: busybox
 Version: 1.13.2
-Release: 1%{?dist}
+Release: 2%{?dist}
 Epoch: 1
 License: GPLv2
 Group: System Environment/Shells
 Source: http://www.busybox.net/downloads/%{name}-%{version}.tar.bz2
 Source1: busybox-petitboot.config
+Source2: http://www.uclibc.org/downloads/uClibc-0.9.30.tar.bz2
+Source3: uClibc.config
 Patch0: busybox-1.12.1-static.patch
 Patch1: busybox-1.12.1-anaconda.patch
-Patch4: busybox-1.2.0-ppc64.patch
 Patch12: busybox-1.2.2-ls.patch
 Patch14: busybox-1.9.0-msh.patch
 Patch16: busybox-1.10.1-hwclock.patch
 Patch20: busybox-1.12.1-selinux.patch
+Patch21: uClibc-0.9.30.patch
 URL: http://www.busybox.net
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)  
 BuildRequires: libselinux-devel >= 1.27.7-2
@@ -52,17 +54,54 @@
 better suited to normal use.
 
 %prep
-%setup -q
+%setup -q -a2
 %patch0 -b .static -p1
 %patch12 -b .ls -p1
 %patch14 -b .msh -p1
 %patch16 -b .ia64 -p1
 %patch20 -b .sel -p1
+cat %{SOURCE3} >uClibc-0.9.30/.config1
+%patch21 -b .orig -p0
+
 
 %build
 # create static busybox - the executable is kept as busybox-static
+# We use uclibc instead of system glibc, uclibc is several times
+# smaller, this is important for static build.
+# Build uclibc first.
+cd uClibc-0.9.30
+# fixme:
+mkdir kernel-include
+cp -a /usr/include/asm kernel-include
+cp -a /usr/include/asm-generic kernel-include
+cp -a /usr/include/linux kernel-include
+# uclibc can't be built on ppc64, we set $arch to "" in this case
+arch=`uname -m | sed -e 's/i.86/i386/' -e 's/ppc/powerpc/' -e 's/ppc64//' -e 's/powerpc64//'`
+echo "TARGET_$arch=y" >.config
+echo "TARGET_ARCH=\"$arch\"" >>.config
+cat .config1 >>.config
+if test "$arch"; then yes "" | make oldconfig; fi
+if test "$arch"; then cat .config; fi
+if test "$arch"; then make V=1; fi
+if test "$arch"; then make install; fi
+if test "$arch"; then make install_kernel_headers; fi
+cd ..
+# we are back in busybox-NN.MM dir now
 make defconfig
-make CC="gcc $RPM_OPT_FLAGS"
+# gcc needs to be convinced to use neither system headers, nor libs,
+# nor startfiles (i.e. crtXXX.o files)
+if test "$arch"; then \
+    mv .config .config1 && \
+    grep -v ^CONFIG_SELINUX .config1 >.config && \
+    yes "" | make oldconfig && \
+    cat .config && \
+    make V=1 \
+        EXTRA_CFLAGS="-isystem uClibc-0.9.30/installed/include" \
+        CFLAGS_busybox="-static -nostartfiles -LuClibc-0.9.30/installed/lib uClibc-0.9.30/installed/lib/crt1.o uClibc-0.9.30/installed/lib/crti.o uClibc-0.9.30/installed/lib/crtn.o"; \
+else \
+    cat .config && \
+    make V=1 CC="gcc $RPM_OPT_FLAGS"; \
+fi
 cp busybox busybox-static
 # create busybox optimized for anaconda 
 make clean
@@ -96,21 +135,24 @@
 rm -rf $RPM_BUILD_ROOT
 
 %files
-%doc LICENSE docs/busybox.net/*.html docs/busybox.net/images/*
 %defattr(-,root,root,-)
+%doc LICENSE docs/busybox.net/*.html docs/busybox.net/images/*
 /sbin/busybox
 
 %files anaconda
-%doc LICENSE docs/busybox.net/*.html docs/busybox.net/images/*
 %defattr(-,root,root,-)
+%doc LICENSE docs/busybox.net/*.html docs/busybox.net/images/*
 /sbin/busybox.anaconda
 
 %files petitboot
-%doc LICENSE 
 %defattr(-,root,root,-)
+%doc LICENSE
 /sbin/busybox.petitboot
 
 %changelog
+* Mon Feb  9 2009 Ivana Varekova <varekova at redhat.com> - 1:1.13.2-2
+- use uClibc nstead of glibc for static build - thanks Denys Vlasenko
+
 * Mon Jan 19 2009 Ivana Varekova <varekova at redhat.com> - 1:1.13.2-1
 - update to 1.13.2
 


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/busybox/devel/sources,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- sources	19 Jan 2009 10:55:38 -0000	1.27
+++ sources	9 Feb 2009 12:15:05 -0000	1.28
@@ -1 +1,2 @@
 9e2a604d18bef219a5a6bf3acf78b9e1  busybox-1.13.2.tar.bz2
+e5766e2566e0297adebebbcc0aba1f2d  uClibc-0.9.30.tar.bz2




More information about the fedora-extras-commits mailing list