1 Summary: C library optimized for size
2 Summary(pl.UTF-8): Biblioteka C zoptymalizowana na rozmiar
9 Source0: http://uclibc.org/downloads/%{name}-%{version}.tar.bz2
10 # Source0-md5: 61dc55f43b17a38a074f347e74095b20
11 Patch0: %{name}-newsoname.patch
12 Patch1: %{name}-toolchain-wrapper.patch
13 Patch2: %{name}-targetcpu.patch
14 Patch3: %{name}-debug.patch
15 Patch4: %{name}-stdio-unhide.patch
16 Patch5: %{name}-sparc.patch
17 URL: http://uclibc.org/
18 BuildRequires: binutils-gasp
19 BuildRequires: gcc >= 5:3.0
20 BuildRequires: linux-libc-headers >= 7:2.6.20
21 BuildRequires: sed >= 4.0
23 ExclusiveArch: alpha %{ix86} ppc sparc sparcv9 %{x8664}
24 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
26 %define uclibc_root /usr/%{_target_cpu}-linux-uclibc
27 # note: the 2nd '\' is needed (some shell expansions?)
28 %define TARGET_ARCH %(echo %{_target_cpu} | sed -e 's/i.86\\|athlon\\|pentium./i386/;s/ppc/powerpc/;s/amd64\\|ia32e/x86_64/')
30 %define specflags -fgnu89-inline
33 Small libc for building embedded applications.
35 %description -l pl.UTF-8
36 Mała libc do budowania aplikacji wbudowanych.
39 Summary: Development files for uClibc
40 Summary(pl.UTF-8): Pliki dla programistów uClibc
41 Group: Development/Libraries
42 Requires: %{name} = %{epoch}:%{version}-%{release}
44 Requires: linux-libc-headers >= 7:2.6.20
48 Small libc for building embedded applications.
50 %description devel -l pl.UTF-8
51 Mała libc do budowania aplikacji wbudowanych.
54 Summary: Static uClibc libraries
55 Summary(pl.UTF-8): Biblioteki statyczne uClibc
56 Group: Development/Libraries
57 Requires: %{name}-devel = %{epoch}:%{version}-%{release}
61 Static uClibc libraries.
63 %description static -l pl.UTF-8
64 Biblioteki statyczne uClibc.
73 # check if it's needed now... ldso is broken on sparc anyway
78 s/default TARGET_i386/default TARGET_sparc/
81 s/default TARGET_i386/default TARGET_alpha/
84 s/default TARGET_i386/default TARGET_powerpc/
87 s/default TARGET_i386/default TARGET_x86_64/
89 ' extra/Configs/Config.in
92 %{__make} -j1 defconfig \
93 TARGET_ARCH="%{TARGET_ARCH}" \
94 TARGET_CPU="%{_target_cpu}" \
95 KERNEL_SOURCE=%{_prefix} \
97 HOSTCFLAGS="%{rpmcflags} %{rpmldflags}" \
98 OPTIMIZATION="%{rpmcflags} -Os" \
101 mv -f .config .config.tmp
102 sed -e 's/^.*UCLIBC_HAS_IPV6.*$/UCLIBC_HAS_IPV6=y/;
103 s/^.*DO_C99_MATH.*$/DO_C99_MATH=y/;
104 s/^.*UCLIBC_HAS_RPC.*/UCLIBC_HAS_RPC=y\n# UCLIBC_HAS_FULL_RPC is not set\n# UCLIBC_HAS_REENTRANT_RPC is not set/;
105 s/^.*UCLIBC_HAS_SYS_SIGLIST.*$/UCLIBC_HAS_SYS_SIGLIST=y/;
106 s,^SHARED_LIB_LOADER_PREFIX=.*,SHARED_LIB_LOADER_PREFIX="$(RUNTIME_PREFIX)/lib",
107 s/^.*UCLIBC_HAS_PRINTF_M_SPEC.*$/UCLIBC_HAS_PRINTF_M_SPEC=y/;
108 %{?debug:s/^.*\<DODEBUG\>.*$/DODEBUG=y/;s/^.*SUPPORT_LD_DEBUG\>.*$/SUPPORT_LD_DEBUG=y/;s/^.*SUPPORT_LD_DEBUG_EARLY.*$/SUPPORT_LD_DEBUG_EARLY=y/;s/^.*\<DOSTRIP\>.*$/# DOSTRIP is not set/;}
109 ' .config.tmp > .config
111 # force regeneration after .config changes
112 rm -f include/bits/uClibc_config.h
114 # note: defconfig and all must be run in separate make process because of macros
116 TARGET_ARCH="%{TARGET_ARCH}" \
117 TARGET_CPU="%{_target_cpu}" \
118 KERNEL_SOURCE=%{_prefix} \
120 HOSTCFLAGS="%{rpmcflags} %{rpmldflags}" \
121 OPTIMIZATION="%{rpmcflags} -Os" \
126 rm -rf $RPM_BUILD_ROOT
127 install -d $RPM_BUILD_ROOT%{_bindir}
129 %{__make} -j1 install \
130 NATIVE_CC="%{__cc}" \
131 NATIVE_CFLAGS="%{rpmcflags} %{rpmldflags}" \
132 TARGET_ARCH="%{TARGET_ARCH}" \
133 TARGET_CPU="%{_target_cpu}" \
135 PREFIX=$RPM_BUILD_ROOT
137 mv -f $RPM_BUILD_ROOT%{uclibc_root}/usr/lib/{libpthread-uclibc,libpthread}.so
138 ln -sf libpthread-0.9.29.so $RPM_BUILD_ROOT%{uclibc_root}/lib/libpthread.so.0
140 # these links are *needed* (by stuff in bin/)
141 for f in $RPM_BUILD_ROOT%{uclibc_root}/bin/*; do
142 mv -f $f $RPM_BUILD_ROOT%{_bindir}
143 ln -sf ../../bin/`basename $f` $f
146 for f in c++ cc g++ gcc ld; do
147 ln -sf /usr/bin/%{_target_cpu}-uclibc-$f \
148 $RPM_BUILD_ROOT%{uclibc_root}/usr/bin/$f
151 rm -rf $RPM_BUILD_ROOT%{uclibc_root}/usr/include/{linux,asm*}
152 ln -sf /usr/include/asm $RPM_BUILD_ROOT%{uclibc_root}/usr/include/asm
153 ln -sf /usr/include/asm-generic $RPM_BUILD_ROOT%{uclibc_root}/usr/include/asm-generic
155 ln -sf /usr/include/asm-i386 $RPM_BUILD_ROOT%{uclibc_root}/usr/include/asm-i386
156 ln -sf /usr/include/asm-x86_64 $RPM_BUILD_ROOT%{uclibc_root}/usr/include/asm-x86_64
160 ln -sf /usr/include/asm-sparc $RPM_BUILD_ROOT%{uclibc_root}/usr/include/asm-sparc
161 ln -sf /usr/include/asm-sparc64 $RPM_BUILD_ROOT%{uclibc_root}/usr/include/asm-sparc64
163 ln -sf /usr/include/linux $RPM_BUILD_ROOT%{uclibc_root}/usr/include/linux
166 rm -rf $RPM_BUILD_ROOT
169 %defattr(644,root,root,755)
170 %doc Changelog* DEDICATION.mjn3 MAINTAINERS README TODO
172 %ifarch %{ix86} %{x8664} ppc sparc sparcv9
173 %dir %{uclibc_root}/lib
174 %attr(755,root,root) %{uclibc_root}/lib/*.so*
178 %defattr(644,root,root,755)
180 %attr(755,root,root) %{_bindir}/*
181 %{uclibc_root}/usr/lib/*.o
182 %dir %{uclibc_root}/usr
183 %dir %{uclibc_root}/usr/bin
184 %attr(755,root,root) %{uclibc_root}/usr/bin/*
185 %dir %{uclibc_root}/usr/lib
186 %{uclibc_root}/usr/lib/uclibc_nonshared.a
187 %ifarch %{ix86} %{x8664} ppc sparc sparcv9
188 %attr(755,root,root) %{uclibc_root}/usr/lib/*.so
190 %{uclibc_root}/usr/include
193 %defattr(644,root,root,755)
194 %{uclibc_root}/usr/lib/lib*.a