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: aa85e790c565ad3096d8c3782dfb0197
11 Patch0: %{name}-newsoname.patch
12 Patch1: %{name}-alpha.patch
13 Patch2: %{name}-toolchain-wrapper.patch
14 Patch3: %{name}-targetcpu.patch
15 Patch4: %{name}-O_DIRECT.patch
16 Patch5: %{name}-sparc.patch
17 Patch6: %{name}-x86_64.patch
18 Patch7: %{name}-ppc-ioctl-errno.patch
19 Patch8: %{name}-syscallerror.patch
20 URL: http://uclibc.org/
21 BuildRequires: binutils-gasp
22 BuildRequires: gcc >= 5:3.0
23 BuildRequires: sed >= 4.0
25 ExclusiveArch: alpha %{ix86} ppc sparc sparc64 sparcv9 %{x8664}
26 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
28 # note: the 2nd '\' is needed (some shell expansions?)
29 %define TARGET_ARCH %(echo %{_target_cpu} | sed -e 's/i.86\\|athlon\\|pentium./i386/;s/ppc/powerpc/;s/amd64\\|ia32e/x86_64/')
32 Small libc for building embedded applications.
34 %description -l pl.UTF-8
35 Mała libc do budowania aplikacji wbudowanych.
38 Summary: Development files for uClibc
39 Summary(pl.UTF-8): Pliki dla programistów uClibc
40 Group: Development/Libraries
41 Requires: %{name} = %{epoch}:%{version}-%{release}
43 Requires: linux-libc-headers
47 Small libc for building embedded applications.
49 %description devel -l pl.UTF-8
50 Mała libc do budowania aplikacji wbudowanych.
53 Summary: Static uClibc libraries
54 Summary(pl.UTF-8): Biblioteki statyczne uClibc
55 Group: Development/Libraries
56 Requires: %{name}-devel = %{epoch}:%{version}-%{release}
60 Static uClibc libraries.
62 %description static -l pl.UTF-8
63 Biblioteki statyczne uClibc.
78 %ifarch sparc sparc64 sparcv9
79 s/default TARGET_i386/default TARGET_sparc/
82 s/default TARGET_i386/default TARGET_alpha/
85 s/default TARGET_i386/default TARGET_powerpc/
88 s/default TARGET_i386/default TARGET_x86_64/
90 ' extra/Configs/Config.in
92 # ldso on x86_64 not ready yet (missing resolve.S)
93 sed -i -e '/HAS_NO_THREADS/a\\n\tselect HAVE_NO_SHARED\n\tselect ARCH_HAS_NO_LDSO' \
94 extra/Configs/Config.x86_64
95 sed -i -e '/HAS_NO_THREADS/d' extra/Configs/Config.alpha
97 %ifarch sparc sparc64 sparcv9
98 ln -sf /usr/include/asm-sparc include/asm-sparc
99 ln -sf /usr/include/asm-sparc64 include/asm-sparc64
100 %{__perl} -pi -e 's/^(rm.*asm)\*/$1/' extra/scripts/fix_includes.sh
104 %{__make} defconfig \
105 TARGET_ARCH="%{TARGET_ARCH}" \
106 TARGET_CPU="%{_target_cpu}" \
107 KERNEL_SOURCE=%{_prefix} \
109 HOSTCFLAGS="%{rpmcflags} %{rpmldflags}" \
110 OPTIMIZATION="%{rpmcflags} -Os" \
113 mv -f .config .config.tmp
114 sed -e 's/^.*UCLIBC_HAS_IPV6.*$/UCLIBC_HAS_IPV6=y/;
115 s/^.*DO_C99_MATH.*$/DO_C99_MATH=y/;
116 s/^.*UCLIBC_HAS_RPC.*/UCLIBC_HAS_RPC=y\n# UCLIBC_HAS_FULL_RPC is not set/;
117 s/^.*UCLIBC_HAS_SYS_SIGLIST.*$/UCLIBC_HAS_SYS_SIGLIST=y/;
118 s,^SHARED_LIB_LOADER_PREFIX=.*,SHARED_LIB_LOADER_PREFIX="$(RUNTIME_PREFIX)/lib",
119 s/^.*UCLIBC_HAS_PRINTF_M_SPEC.*$/UCLIBC_HAS_PRINTF_M_SPEC=y/;
120 ' .config.tmp > .config
121 %{?debug:echo 'DODEBUG=y' >> .config}
122 %{?debug:echo 'SUPPORT_LD_DEBUG=y' >> .config}
124 # force regeneration after .config changes
125 rm -f include/bits/uClibc_config.h
127 # note: defconfig and all must be run in separate make process because of macros
129 TARGET_ARCH="%{TARGET_ARCH}" \
130 TARGET_CPU="%{_target_cpu}" \
131 KERNEL_SOURCE=%{_prefix} \
133 HOSTCFLAGS="%{rpmcflags} %{rpmldflags}" \
134 OPTIMIZATION="%{rpmcflags} -Os" \
138 rm -rf $RPM_BUILD_ROOT
139 install -d $RPM_BUILD_ROOT%{_bindir}
142 NATIVE_CC="%{__cc}" \
143 NATIVE_CFLAGS="%{rpmcflags} %{rpmldflags}" \
144 TARGET_ARCH="%{TARGET_ARCH}" \
145 TARGET_CPU="%{_target_cpu}" \
147 PREFIX=$RPM_BUILD_ROOT
149 # these links are *needed* (by stuff in bin/)
150 for f in $RPM_BUILD_ROOT/usr/%{_target_cpu}-linux-uclibc/bin/*; do
151 mv -f $f $RPM_BUILD_ROOT%{_bindir}
152 ln -sf ../../bin/`basename $f` $f
155 for f in c++ cc g++ gcc ld; do
156 ln -sf /usr/bin/%{_target_cpu}-uclibc-$f \
157 $RPM_BUILD_ROOT/usr/%{_target_cpu}-linux-uclibc/usr/bin/$f
160 rm -rf $RPM_BUILD_ROOT/usr/%{_target_cpu}-linux-uclibc/usr/include/{linux,asm*}
161 ln -sf /usr/include/asm $RPM_BUILD_ROOT/usr/%{_target_cpu}-linux-uclibc/usr/include/asm
163 ln -sf /usr/include/asm-%{TARGET_ARCH} $RPM_BUILD_ROOT/usr/%{_target_cpu}-linux-uclibc/usr/include/asm-%{TARGET_ARCH}
165 %ifarch sparc sparc64 sparcv9
166 ln -sf /usr/include/asm-sparc $RPM_BUILD_ROOT/usr/%{_target_cpu}-linux-uclibc/usr/include/asm-sparc
167 ln -sf /usr/include/asm-sparc64 $RPM_BUILD_ROOT/usr/%{_target_cpu}-linux-uclibc/usr/include/asm-sparc64
169 ln -sf /usr/include/linux $RPM_BUILD_ROOT/usr/%{_target_cpu}-linux-uclibc/usr/include/linux
172 rm -rf $RPM_BUILD_ROOT
175 %defattr(644,root,root,755)
176 %doc Changelog* DEDICATION.mjn3 MAINTAINERS README TODO docs/threads.txt
177 %dir %{_prefix}/*-linux-uclibc
178 %ifarch %{ix86} ppc sparc sparc64 sparcv9
179 %dir %{_prefix}/*-linux-uclibc/lib
180 %attr(755,root,root) %{_prefix}/*-linux-uclibc/lib/*.so*
184 %defattr(644,root,root,755)
185 %doc docs/uclibc.org/*
186 %attr(755,root,root) %{_bindir}/*
187 %{_prefix}/*-linux-uclibc/usr/lib/*.o
188 %dir %{_prefix}/*-linux-uclibc/usr
189 %dir %{_prefix}/*-linux-uclibc/usr/bin
190 %attr(755,root,root) %{_prefix}/*-linux-uclibc/usr/bin/*
191 %dir %{_prefix}/*-linux-uclibc/usr/lib
192 %ifarch %{ix86} ppc sparc sparc64 sparcv9
193 %attr(755,root,root) %{_prefix}/*-linux-uclibc/usr/lib/*.so
195 %{_prefix}/*-linux-uclibc/usr/include
198 %defattr(644,root,root,755)
199 %{_prefix}/*-linux-uclibc/usr/lib/lib*.a