]> git.pld-linux.org Git - packages/uClibc.git/blob - uClibc.spec
- ldso and shared build on x86_64 now
[packages/uClibc.git] / uClibc.spec
1 Summary:        C library optimized for size
2 Summary(pl.UTF-8):      Biblioteka C zoptymalizowana na rozmiar
3 Name:           uClibc
4 Version:        0.9.29
5 Release:        0.1
6 Epoch:          2
7 License:        LGPL
8 Group:          Libraries
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}-sparc.patch
15 Patch4:         %{name}-ppc-ioctl-errno.patch
16 Patch5:         %{name}-syscallerror.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
22 BuildRequires:  which
23 ExclusiveArch:  alpha %{ix86} ppc sparc sparc64 sparcv9 %{x8664}
24 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
25
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/')
29
30 %description
31 Small libc for building embedded applications.
32
33 %description -l pl.UTF-8
34 Mała libc do budowania aplikacji wbudowanych.
35
36 %package devel
37 Summary:        Development files for uClibc
38 Summary(pl.UTF-8):      Pliki dla programistów uClibc
39 Group:          Development/Libraries
40 Requires:       %{name} = %{epoch}:%{version}-%{release}
41 Requires:       binutils
42 Requires:       linux-libc-headers >= 7:2.6.20
43 %requires_eq    gcc
44
45 %description devel
46 Small libc for building embedded applications.
47
48 %description devel -l pl.UTF-8
49 Mała libc do budowania aplikacji wbudowanych.
50
51 %package static
52 Summary:        Static uClibc libraries
53 Summary(pl.UTF-8):      Biblioteki statyczne uClibc
54 Group:          Development/Libraries
55 Requires:       %{name}-devel = %{epoch}:%{version}-%{release}
56 Provides:       libc-static
57
58 %description static
59 Static uClibc libraries.
60
61 %description static -l pl.UTF-8
62 Biblioteki statyczne uClibc.
63
64 %prep
65 %setup -q
66 %patch0 -p1
67 %patch1 -p1
68 %patch2 -p1
69 # this one obsolete, add do_div_10 from ldso/arm/dl-sysdep.h to ldso/sparc/dl-sysdep.h if needed
70 #%patch3 -p1
71 # shouldn't be needed now
72 #%patch4 -p1
73 #%patch5 -p1
74
75 sed -i -e '
76 %ifarch sparc sparc64 sparcv9
77         s/default TARGET_i386/default TARGET_sparc/
78 %endif
79 %ifarch alpha
80         s/default TARGET_i386/default TARGET_alpha/
81 %endif
82 %ifarch ppc ppc64
83         s/default TARGET_i386/default TARGET_powerpc/
84 %endif
85 %ifarch %{x8664}
86         s/default TARGET_i386/default TARGET_x86_64/
87 %endif
88         ' extra/Configs/Config.in
89
90 %ifarch sparc64
91 ln -sf /usr/include/asm-sparc include/asm-sparc
92 ln -sf /usr/include/asm-sparc64 include/asm-sparc64
93 %{__perl} -pi -e 's/^(rm.*asm)\*/$1/' extra/scripts/fix_includes.sh
94 %endif
95
96 %build
97 %{__make} defconfig \
98         TARGET_ARCH="%{TARGET_ARCH}" \
99         TARGET_CPU="%{_target_cpu}" \
100         KERNEL_SOURCE=%{_prefix} \
101         HOSTCC="%{__cc}" \
102         HOSTCFLAGS="%{rpmcflags} %{rpmldflags}" \
103         OPTIMIZATION="%{rpmcflags} -Os" \
104         CC="%{__cc}"
105
106 mv -f .config .config.tmp
107 sed -e '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         s/^.*UCLIBC_HAS_PRINTF_M_SPEC.*$/UCLIBC_HAS_PRINTF_M_SPEC=y/;
113         ' .config.tmp > .config
114 %{?debug:echo 'DODEBUG=y' >> .config}
115 %{?debug:echo 'SUPPORT_LD_DEBUG=y' >> .config}
116
117 # force regeneration after .config changes
118 rm -f include/bits/uClibc_config.h
119
120 # note: defconfig and all must be run in separate make process because of macros
121 %{__make} \
122         TARGET_ARCH="%{TARGET_ARCH}" \
123         TARGET_CPU="%{_target_cpu}" \
124         KERNEL_SOURCE=%{_prefix} \
125         HOSTCC="%{__cc}" \
126         HOSTCFLAGS="%{rpmcflags} %{rpmldflags}" \
127         OPTIMIZATION="%{rpmcflags} -Os" \
128         CC="%{__cc}"
129
130 %install
131 rm -rf $RPM_BUILD_ROOT
132 install -d $RPM_BUILD_ROOT%{_bindir}
133
134 %{__make} install \
135         NATIVE_CC="%{__cc}" \
136         NATIVE_CFLAGS="%{rpmcflags} %{rpmldflags}" \
137         TARGET_ARCH="%{TARGET_ARCH}" \
138         TARGET_CPU="%{_target_cpu}" \
139         CC="%{__cc}" \
140         PREFIX=$RPM_BUILD_ROOT
141
142 mv -f $RPM_BUILD_ROOT%{uclibc_root}/usr/lib/{libpthread-uclibc,libpthread}.so
143 ln -sf libpthread-0.9.29.so $RPM_BUILD_ROOT%{uclibc_root}/lib/libpthread.so.0
144
145 # these links are *needed* (by stuff in bin/)
146 for f in $RPM_BUILD_ROOT%{uclibc_root}/bin/*; do
147         mv -f $f $RPM_BUILD_ROOT%{_bindir}
148         ln -sf ../../bin/`basename $f` $f
149 done
150
151 for f in c++ cc g++ gcc ld; do
152         ln -sf /usr/bin/%{_target_cpu}-uclibc-$f \
153                 $RPM_BUILD_ROOT%{uclibc_root}/usr/bin/$f
154 done
155
156 rm -rf $RPM_BUILD_ROOT%{uclibc_root}/usr/include/{linux,asm*}
157 ln -sf /usr/include/asm $RPM_BUILD_ROOT%{uclibc_root}/usr/include/asm
158 ln -sf /usr/include/asm-generic $RPM_BUILD_ROOT%{uclibc_root}/usr/include/asm-generic
159 %ifarch %{x8664}
160         ln -sf /usr/include/asm-i386 $RPM_BUILD_ROOT%{uclibc_root}/usr/include/asm-i386
161         ln -sf /usr/include/asm-x86_64 $RPM_BUILD_ROOT%{uclibc_root}/usr/include/asm-x86_64
162 %endif
163 %ifarch sparc64
164 ln -sf /usr/include/asm-sparc $RPM_BUILD_ROOT%{uclibc_root}/usr/include/asm-sparc
165 ln -sf /usr/include/asm-sparc64 $RPM_BUILD_ROOT%{uclibc_root}/usr/include/asm-sparc64
166 %endif
167 ln -sf /usr/include/linux $RPM_BUILD_ROOT%{uclibc_root}/usr/include/linux
168
169 %clean
170 rm -rf $RPM_BUILD_ROOT
171
172 %files
173 %defattr(644,root,root,755)
174 %doc Changelog* DEDICATION.mjn3 MAINTAINERS README TODO
175 %dir %{uclibc_root}
176 %ifarch %{ix86} %{x8664} ppc sparc sparc64 sparcv9
177 %dir %{uclibc_root}/lib
178 %attr(755,root,root) %{uclibc_root}/lib/*.so*
179 %endif
180
181 %files devel
182 %defattr(644,root,root,755)
183 %doc docs/*.txt
184 %attr(755,root,root) %{_bindir}/*
185 %{uclibc_root}/usr/lib/*.o
186 %dir %{uclibc_root}/usr
187 %dir %{uclibc_root}/usr/bin
188 %attr(755,root,root) %{uclibc_root}/usr/bin/*
189 %dir %{uclibc_root}/usr/lib
190 %{uclibc_root}/usr/lib/uclibc_nonshared.a
191 %ifarch %{ix86} %{x8664} ppc sparc sparc64 sparcv9
192 %attr(755,root,root) %{uclibc_root}/usr/lib/*.so
193 %endif
194 %{uclibc_root}/usr/include
195
196 %files static
197 %defattr(644,root,root,755)
198 %{uclibc_root}/usr/lib/lib*.a
This page took 0.055741 seconds and 3 git commands to generate.