]> git.pld-linux.org Git - packages/uClibc.git/blob - uClibc.spec
- rel 5; enable legacy susv3 functions/macros
[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:        5
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}-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
22 BuildRequires:  which
23 ExclusiveArch:  alpha %{ix86} ppc sparc 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 %define         specflags       -fgnu89-inline
31
32 %description
33 Small libc for building embedded applications.
34
35 %description -l pl.UTF-8
36 Mała libc do budowania aplikacji wbudowanych.
37
38 %package devel
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}
43 Requires:       binutils
44 Requires:       linux-libc-headers >= 7:2.6.20
45 %requires_eq    gcc
46
47 %description devel
48 Small libc for building embedded applications.
49
50 %description devel -l pl.UTF-8
51 Mała libc do budowania aplikacji wbudowanych.
52
53 %package static
54 Summary:        Static uClibc libraries
55 Summary(pl.UTF-8):      Biblioteki statyczne uClibc
56 Group:          Development/Libraries
57 Requires:       %{name}-devel = %{epoch}:%{version}-%{release}
58 Provides:       libc-static
59
60 %description static
61 Static uClibc libraries.
62
63 %description static -l pl.UTF-8
64 Biblioteki statyczne uClibc.
65
66 %prep
67 %setup -q
68 %patch0 -p1
69 %patch1 -p1
70 %patch2 -p1
71 %patch3 -p1
72 %patch4 -p1
73 # check if it's needed now... ldso is broken on sparc anyway
74 #%patch5 -p1
75
76 sed -i -e '
77 %ifarch sparc sparcv9
78         s/default TARGET_i386/default TARGET_sparc/
79 %endif
80 %ifarch alpha
81         s/default TARGET_i386/default TARGET_alpha/
82 %endif
83 %ifarch ppc ppc64
84         s/default TARGET_i386/default TARGET_powerpc/
85 %endif
86 %ifarch %{x8664}
87         s/default TARGET_i386/default TARGET_x86_64/
88 %endif
89         ' extra/Configs/Config.in
90
91 %build
92 %{__make} -j1 defconfig \
93         TARGET_ARCH="%{TARGET_ARCH}" \
94         TARGET_CPU="%{_target_cpu}" \
95         KERNEL_SOURCE=%{_prefix} \
96         HOSTCC="%{__cc}" \
97         HOSTCFLAGS="%{rpmcflags} %{rpmldflags}" \
98         OPTIMIZATION="%{rpmcflags} -Os" \
99         CC="%{__cc}"
100
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         s/^.*UCLIBC_SUSV3_LEGACY.*$/UCLIBC_SUSV3_LEGACY=y\nUCLIBC_SUSV3_LEGACY_MACROS=y/;
109 %{?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/;}
110         ' .config.tmp > .config
111
112 # force regeneration after .config changes
113 rm -f include/bits/uClibc_config.h
114
115 # note: defconfig and all must be run in separate make process because of macros
116 %{__make} -j1 \
117         TARGET_ARCH="%{TARGET_ARCH}" \
118         TARGET_CPU="%{_target_cpu}" \
119         KERNEL_SOURCE=%{_prefix} \
120         HOSTCC="%{__cc}" \
121         HOSTCFLAGS="%{rpmcflags} %{rpmldflags}" \
122         OPTIMIZATION="%{rpmcflags} -Os" \
123         DOSTRIP=n \
124         CC="%{__cc}"
125
126 %install
127 rm -rf $RPM_BUILD_ROOT
128 install -d $RPM_BUILD_ROOT%{_bindir}
129
130 %{__make} -j1 install \
131         NATIVE_CC="%{__cc}" \
132         NATIVE_CFLAGS="%{rpmcflags} %{rpmldflags}" \
133         TARGET_ARCH="%{TARGET_ARCH}" \
134         TARGET_CPU="%{_target_cpu}" \
135         CC="%{__cc}" \
136         PREFIX=$RPM_BUILD_ROOT
137
138 mv -f $RPM_BUILD_ROOT%{uclibc_root}/usr/lib/{libpthread-uclibc,libpthread}.so
139 ln -sf libpthread-0.9.29.so $RPM_BUILD_ROOT%{uclibc_root}/lib/libpthread.so.0
140
141 # these links are *needed* (by stuff in bin/)
142 for f in $RPM_BUILD_ROOT%{uclibc_root}/bin/*; do
143         mv -f $f $RPM_BUILD_ROOT%{_bindir}
144         ln -sf ../../bin/`basename $f` $f
145 done
146
147 for f in c++ cc g++ gcc ld; do
148         ln -sf /usr/bin/%{_target_cpu}-uclibc-$f \
149                 $RPM_BUILD_ROOT%{uclibc_root}/usr/bin/$f
150 done
151
152 rm -rf $RPM_BUILD_ROOT%{uclibc_root}/usr/include/{linux,asm*}
153 ln -sf /usr/include/asm $RPM_BUILD_ROOT%{uclibc_root}/usr/include/asm
154 ln -sf /usr/include/asm-generic $RPM_BUILD_ROOT%{uclibc_root}/usr/include/asm-generic
155 %ifarch %{x8664}
156 ln -sf /usr/include/asm-i386 $RPM_BUILD_ROOT%{uclibc_root}/usr/include/asm-i386
157 ln -sf /usr/include/asm-x86_64 $RPM_BUILD_ROOT%{uclibc_root}/usr/include/asm-x86_64
158 %endif
159 # for future use
160 %ifarch sparc64
161 ln -sf /usr/include/asm-sparc $RPM_BUILD_ROOT%{uclibc_root}/usr/include/asm-sparc
162 ln -sf /usr/include/asm-sparc64 $RPM_BUILD_ROOT%{uclibc_root}/usr/include/asm-sparc64
163 %endif
164 ln -sf /usr/include/linux $RPM_BUILD_ROOT%{uclibc_root}/usr/include/linux
165
166 %clean
167 rm -rf $RPM_BUILD_ROOT
168
169 %files
170 %defattr(644,root,root,755)
171 %doc Changelog* DEDICATION.mjn3 MAINTAINERS README TODO
172 %dir %{uclibc_root}
173 %ifarch %{ix86} %{x8664} ppc sparc sparcv9
174 %dir %{uclibc_root}/lib
175 %attr(755,root,root) %{uclibc_root}/lib/*.so*
176 %endif
177
178 %files devel
179 %defattr(644,root,root,755)
180 %doc docs/*.txt
181 %attr(755,root,root) %{_bindir}/*
182 %{uclibc_root}/usr/lib/*.o
183 %dir %{uclibc_root}/usr
184 %dir %{uclibc_root}/usr/bin
185 %attr(755,root,root) %{uclibc_root}/usr/bin/*
186 %dir %{uclibc_root}/usr/lib
187 %{uclibc_root}/usr/lib/uclibc_nonshared.a
188 %ifarch %{ix86} %{x8664} ppc sparc sparcv9
189 %attr(755,root,root) %{uclibc_root}/usr/lib/*.so
190 %endif
191 %{uclibc_root}/usr/include
192
193 %files static
194 %defattr(644,root,root,755)
195 %{uclibc_root}/usr/lib/lib*.a
This page took 0.051179 seconds and 4 git commands to generate.