1 Summary: C library optimized for size
2 Summary(pl): Biblioteka C zoptymalizowana na rozmiar
9 Source0: http://uclibc.org/downloads/%{name}-%{version}.tar.bz2
10 # Source0-md5: 1ada58d919a82561061e4741fb6abd29
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}-ppc-syscall.patch
20 Patch9: %{name}-ppc-uint128.patch
21 Patch10: %{name}-syscallerror.patch
22 URL: http://uclibc.org/
23 BuildRequires: binutils-gasp
24 BuildRequires: gcc >= 5:3.0
25 BuildRequires: sed >= 4.0
27 ExclusiveArch: alpha %{ix86} ppc sparc sparc64 sparcv9 %{x8664}
28 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
30 # note: the 2nd '\' is needed (some shell expansions?)
31 %define TARGET_ARCH %(echo %{_target_cpu} | sed -e 's/i.86\\|athlon\\|pentium./i386/;s/ppc/powerpc/;s/amd64\\|ia32e/x86_64/')
34 Small libc for building embedded applications.
37 Ma³a libc do budowania aplikacji wbudowanych.
40 Summary: Development files for uClibc
41 Summary(pl): Pliki dla programistów uClibc
42 Group: Development/Libraries
43 Requires: %{name} = %{epoch}:%{version}-%{release}
45 Requires: linux-libc-headers
49 Small libc for building embedded applications.
51 %description devel -l pl
52 Ma³a libc do budowania aplikacji wbudowanych.
55 Summary: Static uClibc libraries
56 Summary(pl): Biblioteki statyczne uClibc
57 Group: Development/Libraries
58 Requires: %{name}-devel = %{epoch}:%{version}-%{release}
62 Static uClibc libraries.
64 %description static -l pl
65 Biblioteki statyczne uClibc.
82 %ifarch sparc sparc64 sparcv9
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
96 # ldso on x86_64 not ready yet (missing resolve.S)
97 sed -i -e '/HAS_NO_THREADS/a\\n\tselect HAVE_NO_SHARED\n\tselect ARCH_HAS_NO_LDSO' \
98 extra/Configs/Config.x86_64
99 sed -i -e '/HAS_NO_THREADS/d' extra/Configs/Config.alpha
101 %ifarch sparc sparc64 sparcv9
102 ln -sf /usr/include/asm-sparc include/asm-sparc
103 ln -sf /usr/include/asm-sparc64 include/asm-sparc64
104 %{__perl} -pi -e 's/^(rm.*asm)\*/$1/' extra/scripts/fix_includes.sh
108 %{__make} defconfig \
109 TARGET_ARCH="%{TARGET_ARCH}" \
110 TARGET_CPU="%{_target_cpu}" \
111 KERNEL_SOURCE=%{_prefix} \
113 HOSTCFLAGS="%{rpmcflags} %{rpmldflags}" \
114 OPTIMIZATION="%{rpmcflags} -Os" \
117 mv -f .config .config.tmp
118 sed -e 's/^.*UCLIBC_HAS_IPV6.*$/UCLIBC_HAS_IPV6=y/;
119 s/^.*DO_C99_MATH.*$/DO_C99_MATH=y/;
120 s/^.*UCLIBC_HAS_RPC.*/UCLIBC_HAS_RPC=y\n# UCLIBC_HAS_FULL_RPC is not set/;
121 s/^.*UCLIBC_HAS_SYS_SIGLIST.*$/UCLIBC_HAS_SYS_SIGLIST=y/;
122 s,^SHARED_LIB_LOADER_PREFIX=.*,SHARED_LIB_LOADER_PREFIX="$(RUNTIME_PREFIX)/lib",
123 s/^.*UCLIBC_HAS_PRINTF_M_SPEC.*$/UCLIBC_HAS_PRINTF_M_SPEC=y/;
124 ' .config.tmp > .config
125 %{?debug:echo 'DODEBUG=y' >> .config}
126 %{?debug:echo 'SUPPORT_LD_DEBUG=y' >> .config}
128 # force regeneration after .config changes
129 rm -f include/bits/uClibc_config.h
131 # note: defconfig and all must be run in separate make process because of macros
133 TARGET_ARCH="%{TARGET_ARCH}" \
134 TARGET_CPU="%{_target_cpu}" \
135 KERNEL_SOURCE=%{_prefix} \
137 HOSTCFLAGS="%{rpmcflags} %{rpmldflags}" \
138 OPTIMIZATION="%{rpmcflags} -Os" \
142 rm -rf $RPM_BUILD_ROOT
143 install -d $RPM_BUILD_ROOT%{_bindir}
146 NATIVE_CC="%{__cc}" \
147 NATIVE_CFLAGS="%{rpmcflags} %{rpmldflags}" \
148 TARGET_ARCH="%{TARGET_ARCH}" \
149 TARGET_CPU="%{_target_cpu}" \
151 PREFIX=$RPM_BUILD_ROOT
153 # these links are *needed* (by stuff in bin/)
154 for f in $RPM_BUILD_ROOT/usr/%{_target_cpu}-linux-uclibc/bin/*; do
155 mv -f $f $RPM_BUILD_ROOT%{_bindir}
156 ln -sf ../../bin/`basename $f` $f
159 for f in c++ cc g++ gcc ld; do
160 ln -sf /usr/bin/%{_target_cpu}-uclibc-$f \
161 $RPM_BUILD_ROOT/usr/%{_target_cpu}-linux-uclibc/usr/bin/$f
164 rm -rf $RPM_BUILD_ROOT/usr/%{_target_cpu}-linux-uclibc/usr/include/{linux,asm*}
165 ln -sf /usr/include/asm $RPM_BUILD_ROOT/usr/%{_target_cpu}-linux-uclibc/usr/include/asm
167 ln -sf /usr/include/asm-%{TARGET_ARCH} $RPM_BUILD_ROOT/usr/%{_target_cpu}-linux-uclibc/usr/include/asm-%{TARGET_ARCH}
169 %ifarch sparc sparc64 sparcv9
170 ln -sf /usr/include/asm-sparc $RPM_BUILD_ROOT/usr/%{_target_cpu}-linux-uclibc/usr/include/asm-sparc
171 ln -sf /usr/include/asm-sparc64 $RPM_BUILD_ROOT/usr/%{_target_cpu}-linux-uclibc/usr/include/asm-sparc64
173 ln -sf /usr/include/linux $RPM_BUILD_ROOT/usr/%{_target_cpu}-linux-uclibc/usr/include/linux
176 rm -rf $RPM_BUILD_ROOT
179 %defattr(644,root,root,755)
180 %doc Changelog* DEDICATION.mjn3 MAINTAINERS README TODO docs/threads.txt
181 %dir %{_prefix}/*-linux-uclibc
182 %ifarch %{ix86} ppc sparc sparc64 sparcv9
183 %dir %{_prefix}/*-linux-uclibc/lib
184 %attr(755,root,root) %{_prefix}/*-linux-uclibc/lib/*.so*
188 %defattr(644,root,root,755)
189 %doc docs/uclibc.org/*
190 %attr(755,root,root) %{_bindir}/*
191 %{_prefix}/*-linux-uclibc/usr/lib/*.o
192 %dir %{_prefix}/*-linux-uclibc/usr
193 %dir %{_prefix}/*-linux-uclibc/usr/bin
194 %attr(755,root,root) %{_prefix}/*-linux-uclibc/usr/bin/*
195 %dir %{_prefix}/*-linux-uclibc/usr/lib
196 %ifarch %{ix86} ppc sparc sparc64 sparcv9
197 %attr(755,root,root) %{_prefix}/*-linux-uclibc/usr/lib/*.so
199 %{_prefix}/*-linux-uclibc/usr/include
202 %defattr(644,root,root,755)
203 %{_prefix}/*-linux-uclibc/usr/lib/lib*.a