3 %bcond_without shared # don't build shared lib support
5 Summary: C library optimized for size
6 Summary(pl.UTF-8): Biblioteka C zoptymalizowana na rozmiar
13 Source0: http://uclibc.org/downloads/%{name}-%{version}.tar.bz2
14 # Source0-md5: 61dc55f43b17a38a074f347e74095b20
15 Patch0: %{name}-newsoname.patch
16 Patch1: %{name}-toolchain-wrapper.patch
17 Patch2: %{name}-targetcpu.patch
18 Patch3: %{name}-debug.patch
19 Patch4: %{name}-stdio-unhide.patch
20 Patch5: %{name}-sparc.patch
21 URL: http://uclibc.org/
22 BuildRequires: binutils-gasp
24 BuildRequires: gcc >= 5:3.0
25 BuildRequires: linux-libc-headers >= 7:2.6.24
26 BuildRequires: sed >= 4.0
28 ExclusiveArch: alpha %{ix86} ppc sparc sparcv9 %{x8664}
29 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
31 %define uclibc_root /usr/%{_target_cpu}-linux-uclibc
32 # note: the 2nd '\' is needed (some shell expansions?)
33 %define TARGET_ARCH %(echo %{_target_cpu} | sed -e 's/i.86\\|athlon\\|pentium./i386/;s/ppc/powerpc/;s/amd64\\|ia32e/x86_64/')
35 %define specflags -fgnu89-inline
38 Small libc for building embedded applications.
40 %description -l pl.UTF-8
41 Mała libc do budowania aplikacji wbudowanych.
44 Summary: Development files for uClibc
45 Summary(pl.UTF-8): Pliki dla programistów uClibc
46 Group: Development/Libraries
47 Requires: %{name} = %{epoch}:%{version}-%{release}
49 Requires: linux-libc-headers >= 7:2.6.24
53 Small libc for building embedded applications.
55 %description devel -l pl.UTF-8
56 Mała libc do budowania aplikacji wbudowanych.
59 Summary: Static uClibc libraries
60 Summary(pl.UTF-8): Biblioteki statyczne uClibc
61 Group: Development/Libraries
62 Requires: %{name}-devel = %{epoch}:%{version}-%{release}
66 Static uClibc libraries.
68 %description static -l pl.UTF-8
69 Biblioteki statyczne uClibc.
78 # check if it's needed now... ldso is broken on sparc anyway
83 s/default TARGET_i386/default TARGET_sparc/
86 s/default TARGET_i386/default TARGET_alpha/
89 s/default TARGET_i386/default TARGET_powerpc/
92 s/default TARGET_i386/default TARGET_x86_64/
94 ' extra/Configs/Config.in
97 %{__make} -j1 defconfig \
98 TARGET_ARCH="%{TARGET_ARCH}" \
99 TARGET_CPU="%{_target_cpu}" \
100 KERNEL_SOURCE=%{_prefix} \
102 HOSTCFLAGS="%{rpmcflags} %{rpmldflags}" \
103 OPTIMIZATION="%{rpmcflags} -Os" \
107 s/^.*UCLIBC_HAS_IPV6.*$/UCLIBC_HAS_IPV6=y/;
108 s/^.*DO_C99_MATH.*$/DO_C99_MATH=y/;
109 s/^.*UCLIBC_HAS_RPC.*/UCLIBC_HAS_RPC=y\n# UCLIBC_HAS_FULL_RPC is not set\n# UCLIBC_HAS_REENTRANT_RPC is not set/;
110 s/^.*UCLIBC_HAS_SYS_SIGLIST.*$/UCLIBC_HAS_SYS_SIGLIST=y/;
111 s,^SHARED_LIB_LOADER_PREFIX=.*,SHARED_LIB_LOADER_PREFIX="$(RUNTIME_PREFIX)/lib",
112 %if %{without shared}
113 s/^\(HAVE_SHARED\)=y/# \1 is not set/;
115 s/^.*UCLIBC_HAS_PRINTF_M_SPEC.*$/UCLIBC_HAS_PRINTF_M_SPEC=y/;
116 s/^.*UCLIBC_SUSV3_LEGACY.*$/UCLIBC_SUSV3_LEGACY=y\nUCLIBC_SUSV3_LEGACY_MACROS=y/;
117 s/^.*\<DOSTRIP\>.*$/# DOSTRIP is not set/;
118 %{?debug:s/^.*\<DODEBUG\>.*$/DODEBUG=y/;s/^.*SUPPORT_LD_DEBUG\>.*$/SUPPORT_LD_DEBUG=y/;s/^.*SUPPORT_LD_DEBUG_EARLY.*$/SUPPORT_LD_DEBUG_EARLY=y/;}
121 # force regeneration after .config changes
122 rm -f include/bits/uClibc_config.h
124 # note: defconfig and all must be run in separate make process because of macros
126 TARGET_ARCH="%{TARGET_ARCH}" \
127 TARGET_CPU="%{_target_cpu}" \
128 KERNEL_SOURCE=%{_prefix} \
130 HOSTCFLAGS="%{rpmcflags} %{rpmldflags}" \
131 OPTIMIZATION="%{rpmcflags} -Os" \
135 rm -rf $RPM_BUILD_ROOT
136 install -d $RPM_BUILD_ROOT%{_bindir}
138 %{__make} -j1 install \
139 NATIVE_CC="%{__cc}" \
140 NATIVE_CFLAGS="%{rpmcflags} %{rpmldflags}" \
141 TARGET_ARCH="%{TARGET_ARCH}" \
142 TARGET_CPU="%{_target_cpu}" \
144 PREFIX=$RPM_BUILD_ROOT
147 mv -f $RPM_BUILD_ROOT%{uclibc_root}/usr/lib/{libpthread-uclibc,libpthread}.so
148 ln -sf libpthread-0.9.29.so $RPM_BUILD_ROOT%{uclibc_root}/lib/libpthread.so.0
151 # these links are *needed* (by stuff in bin/)
152 for f in $RPM_BUILD_ROOT%{uclibc_root}/bin/*; do
159 ln -sf ${l#%{_bindir}/} $RPM_BUILD_ROOT%{_bindir}/${f##*/}
163 mv -f $f $RPM_BUILD_ROOT%{_bindir}
170 a=${f#*/%{_target_cpu}-uclibc-}
171 ln -sf %{_bindir}/$(basename $f) $RPM_BUILD_ROOT%{uclibc_root}/usr/bin/$a
172 mv -f $f $RPM_BUILD_ROOT%{_bindir}
176 for f in $RPM_BUILD_ROOT%{uclibc_root}/usr/bin/*; do
181 a=${l#*/%{_target_cpu}-uclibc-}
182 ln -sf %{_bindir}/$a $f
194 rm -rf $RPM_BUILD_ROOT%{uclibc_root}/usr/include/{linux,asm*}
195 ln -sf /usr/include/asm $RPM_BUILD_ROOT%{uclibc_root}/usr/include/asm
196 ln -sf /usr/include/asm-generic $RPM_BUILD_ROOT%{uclibc_root}/usr/include/asm-generic
199 ln -sf /usr/include/asm-sparc $RPM_BUILD_ROOT%{uclibc_root}/usr/include/asm-sparc
200 ln -sf /usr/include/asm-sparc64 $RPM_BUILD_ROOT%{uclibc_root}/usr/include/asm-sparc64
202 ln -sf /usr/include/linux $RPM_BUILD_ROOT%{uclibc_root}/usr/include/linux
205 rm -rf $RPM_BUILD_ROOT
208 %defattr(644,root,root,755)
209 %doc Changelog* DEDICATION.mjn3 MAINTAINERS README TODO
211 %ifarch %{ix86} %{x8664} ppc sparc sparcv9
213 %dir %{uclibc_root}/lib
214 %attr(755,root,root) %{uclibc_root}/lib/*.so*
219 %defattr(644,root,root,755)
221 %attr(755,root,root) %{_bindir}/*
222 %{uclibc_root}/usr/lib/*.o
223 %dir %{uclibc_root}/usr
224 %dir %{uclibc_root}/usr/bin
225 %attr(755,root,root) %{uclibc_root}/usr/bin/*
226 %dir %{uclibc_root}/usr/lib
228 %{uclibc_root}/usr/lib/uclibc_nonshared.a
229 %ifarch %{ix86} %{x8664} ppc sparc sparcv9
230 %attr(755,root,root) %{uclibc_root}/usr/lib/*.so
233 %{uclibc_root}/usr/include
236 %defattr(644,root,root,755)
237 %{uclibc_root}/usr/lib/lib*.a