]>
Commit | Line | Data |
---|---|---|
59bfc2f3 ER |
1 | # NOTE: |
2 | # - manifest url https://commondatastorage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/naclsdk_manifest.json | |
3 | # rev 6757 matches pepper_15, r1239 | |
4 | # rev 6941 matches pepper_16, r1344 | |
5 | # - libdir mixed up for 32/64 bit. do we care? upstream confused about it too | |
6df38a61 | 6 | # https://code.google.com/p/nativeclient/issues/detail?id=1975 |
59bfc2f3 ER |
7 | # - /bin/sh in some wrappers: |
8 | # cat i686-nacl-as | |
9 | # #!/bin/bash | |
6df38a61 | 10 | # - messed up install dirs (two gcc dirs) |
f1465e3f | 11 | %define nacl_revision 8034 |
59bfc2f3 ER |
12 | %define binutils_ver 2.20.1 |
13 | %define gcc_ver 4.4.3 | |
14 | %define newlib_ver 1.18.0 | |
15 | Summary: Native Client newlib-based toolchain (only for compiling IRT) | |
16 | Name: nacl-toolchain-newlib | |
17 | Version: 0.%{nacl_revision} | |
6df38a61 | 18 | Release: 0.5 |
59bfc2f3 | 19 | License: BSD (NaCL), GPL v3/LGPL v3 (binutils), GPL v3+ (gcc), GPL v2(newlib) |
6df38a61 | 20 | Group: Development/Languages |
59bfc2f3 | 21 | Source0: http://gsdview.appspot.com/nativeclient-archive2/x86_toolchain/r%{nacl_revision}/nacltoolchain-buildscripts-r%{nacl_revision}.tar.gz |
f1465e3f | 22 | # Source0-md5: 985872dcaebb3dbb1d406910267efb06 |
59bfc2f3 ER |
23 | Source1: ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_ver}.tar.gz |
24 | # Source1-md5: 3dae127d4aa659d72f8ea8c0ff2a7a20 | |
25 | Source2: http://ftp.gnu.org/gnu/binutils/binutils-%{binutils_ver}.tar.bz2 | |
26 | # Source2-md5: 2b9dc8f2b7dbd5ec5992c6e29de0b764 | |
27 | Source3: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{gcc_ver}/gcc-%{gcc_ver}.tar.bz2 | |
28 | # Source3-md5: fe1ca818fc6d2caeffc9051fe67ff103 | |
29 | Patch0: http://gsdview.appspot.com/nativeclient-archive2/x86_toolchain/r%{nacl_revision}/naclbinutils-%{binutils_ver}-r%{nacl_revision}.patch.bz2 | |
f1465e3f | 30 | # Patch0-md5: 8473a33e00cea1d1de041b42753e3e02 |
59bfc2f3 | 31 | Patch1: http://gsdview.appspot.com/nativeclient-archive2/x86_toolchain/r%{nacl_revision}/naclnewlib-%{newlib_ver}-r%{nacl_revision}.patch.bz2 |
f1465e3f | 32 | # Patch1-md5: faae6e8990cec9dde0fa8b371eb97c4e |
59bfc2f3 | 33 | Patch2: http://gsdview.appspot.com/nativeclient-archive2/x86_toolchain/r%{nacl_revision}/naclgcc-%{gcc_ver}-r%{nacl_revision}.patch.bz2 |
f1465e3f ER |
34 | # Patch2-md5: 64509546a3d2133c5f26903da46a251a |
35 | URL: https://developers.google.com/native-client/ | |
59bfc2f3 ER |
36 | BuildRequires: binutils >= 2.15.94 |
37 | BuildRequires: bison >= 1.875 | |
38 | BuildRequires: cloog-ppl-devel | |
39 | BuildRequires: flex >= 2.5.4 | |
dec59fc1 | 40 | BuildRequires: gettext-tools |
59bfc2f3 ER |
41 | BuildRequires: iconv |
42 | BuildRequires: libart_lgpl-devel >= 2.1 | |
43 | BuildRequires: libmpc-devel | |
44 | BuildRequires: m4 | |
45 | BuildRequires: ncurses-devel >= 5.2 | |
46 | BuildRequires: ppl-devel | |
47 | BuildRequires: sed >= 4 | |
48 | BuildRequires: texinfo >= 4.8 | |
49 | BuildRequires: unzip | |
50 | BuildRequires: yacc | |
51 | BuildRequires: zip | |
52 | Requires: glibc >= 6:2.8/v8 | |
53 | Requires: gmp >= 5.0.2 | |
54 | Requires: mpfr >= 3.0.1 | |
55 | Requires: zlib >= 1.1.4 | |
56 | ExclusiveArch: %{x8664} %{ix86} | |
57 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) | |
58 | ||
59 | %define target x86_64-nacl | |
6df38a61 | 60 | %define target32 i686-nacl |
59bfc2f3 ER |
61 | %define arch %{_prefix}/%{target}-newlib |
62 | %define _datadir %{arch}/share | |
6df38a61 | 63 | %define _mandir %{arch}/man |
59bfc2f3 ER |
64 | %define _infodir %{_datadir}/info |
65 | %define _includedir %{arch}/%{target}/include | |
6df38a61 | 66 | %define _libdir %{arch}/%{target}/lib |
59bfc2f3 ER |
67 | %define _libexecdir %{arch}/libexec |
68 | ||
6df38a61 ER |
69 | %define gccarch %{_libexecdir}/gcc/%{target} |
70 | %define gcclib %{gccarch}/%{gcc_ver} | |
71 | %define gcclib2 %{arch}/lib/gcc/%{target}/%{gcc_ver} | |
72 | ||
73 | %define _noautostrip .*%{arch}/.*\.a | |
74 | %define _noautochrpath .*%{arch}/.*\.a | |
59bfc2f3 | 75 | |
f1465e3f ER |
76 | # temporarily: |
77 | #/usr/bin/ld: libbackend.a(graphite.o): undefined reference to symbol 'ppl_finalize' | |
78 | #/usr/bin/ld: note: 'ppl_finalize' is defined in DSO /usr/lib/libppl_c.so.4 so try adding it to the linker command line | |
79 | #define filterout_ld -Wl,--no-copy-dt-needed-entries -Wl,--as-needed | |
80 | #define specldflags -lppl_c | |
81 | ||
59bfc2f3 ER |
82 | %description |
83 | Native Client newlib-based toolchain (only for compiling IRT). | |
84 | ||
85 | %prep | |
86 | %setup -qc -a1 -a2 -a3 | |
87 | mkdir -p SRC | |
88 | mv binutils-%{binutils_ver} SRC/binutils | |
89 | mv newlib-%{newlib_ver} SRC/newlib | |
90 | mv gcc-%{gcc_ver} SRC/gcc | |
91 | ||
92 | cd SRC | |
93 | %patch0 -p0 | |
94 | %patch1 -p0 | |
95 | %patch2 -p0 | |
96 | ||
97 | %build | |
98 | %{__make} build-with-newlib \ | |
f1465e3f | 99 | LDFLAGS="%{rpmldflags}" \ |
59bfc2f3 ER |
100 | PREFIX="$(pwd)/out" \ |
101 | CANNED_REVISION="yes" | |
102 | ||
103 | %install | |
104 | rm -rf $RPM_BUILD_ROOT | |
105 | install -d $RPM_BUILD_ROOT%{arch} | |
106 | cp -a out/* $RPM_BUILD_ROOT%{arch} | |
107 | ||
6df38a61 ER |
108 | ## gcc |
109 | # move fixed includes to proper place | |
110 | cp -p $RPM_BUILD_ROOT%{gcclib2}/include-fixed/*.h $RPM_BUILD_ROOT%{gcclib2}/include | |
111 | ||
112 | # don't want it here | |
113 | %{__rm} $RPM_BUILD_ROOT%{_libdir}/libiberty.a | |
114 | %{__rm} $RPM_BUILD_ROOT%{_libdir}32/libiberty.a | |
115 | %{__rm} -r $RPM_BUILD_ROOT%{_infodir} | |
116 | %{__rm} $RPM_BUILD_ROOT%{_mandir}/man7/fsf-funding.7 | |
117 | %{__rm} $RPM_BUILD_ROOT%{_mandir}/man7/gfdl.7 | |
118 | %{__rm} $RPM_BUILD_ROOT%{_mandir}/man7/gpl.7 | |
119 | %{__rm} $RPM_BUILD_ROOT%{_datadir}/locale/*/LC_MESSAGES/{gcc,cpplib}.mo | |
120 | %{__rm} -r $RPM_BUILD_ROOT%{gcclib2}/include-fixed | |
121 | %{__rm} -r $RPM_BUILD_ROOT%{gcclib2}/install-tools | |
122 | ||
123 | %if 0%{!?debug:1} && 0 | |
124 | # strip target libraries | |
125 | export PATH=$PATH:$(pwd)/out/bin | |
126 | ||
127 | # strip target libraries | |
128 | %{target}-strip --strip-debug --remove-section=.note --remove-section=.comment \ | |
129 | $RPM_BUILD_ROOT%dir %{arch}/%{target}/lib/*.a \ | |
130 | $RPM_BUILD_ROOT%{arch}/%{target}/lib/*.a | |
131 | ||
132 | %{target32}-strip --strip-debug --remove-section=.note --remove-section=.comment \ | |
133 | $RPM_BUILD_ROOT%dir %{arch}/%{target}/lib/32/*.a \ | |
134 | $RPM_BUILD_ROOT%{arch}/%{target}/lib32/*.a | |
135 | %endif | |
136 | ||
137 | # general cleanup | |
59bfc2f3 ER |
138 | %{__rm} $RPM_BUILD_ROOT%{arch}/COPYING* |
139 | rm -f $RPM_BUILD_ROOT%{_infodir}/dir | |
140 | ||
141 | %{__rm} $RPM_BUILD_ROOT%{arch}/%{target}/lib/*.la | |
142 | %{__rm} $RPM_BUILD_ROOT%{arch}/%{target}/lib32/*.la | |
143 | ||
144 | rm -rf $RPM_BUILD_ROOT%{_datadir}/locale | |
145 | rm -rf $RPM_BUILD_ROOT%{_mandir} | |
146 | rm -rf $RPM_BUILD_ROOT%{_infodir} | |
147 | rm -rf $RPM_BUILD_ROOT%{arch}/info | |
148 | rm -rf $RPM_BUILD_ROOT%{arch}/man | |
6df38a61 | 149 | rm -rf $RPM_BUILD_ROOT%{arch}/share/man |
59bfc2f3 ER |
150 | |
151 | %clean | |
152 | rm -rf $RPM_BUILD_ROOT | |
153 | ||
154 | %files | |
155 | %defattr(644,root,root,755) | |
156 | %dir %{arch} | |
157 | ||
158 | # binutils | |
159 | %dir %{arch}/bin | |
6df38a61 ER |
160 | %attr(755,root,root) %{arch}/bin/%{target}-* |
161 | %attr(755,root,root) %{arch}/bin/%{target32}-* | |
59bfc2f3 ER |
162 | |
163 | # libc | |
164 | %dir %{_datadir} | |
165 | %{_datadir}/iconv_data | |
166 | ||
167 | # gcc | |
168 | %dir %{arch}/lib | |
169 | %dir %{arch}/lib/gcc | |
6df38a61 ER |
170 | %dir %{arch}/lib/gcc/%{target} |
171 | %{arch}/lib/gcc/%{target}/%{gcc_ver} | |
59bfc2f3 ER |
172 | |
173 | %dir %{_libexecdir} | |
174 | %dir %{_libexecdir}/gcc | |
175 | %dir %{gccarch} | |
176 | %dir %{gcclib} | |
177 | %attr(755,root,root) %{gcclib}/cc1 | |
178 | %attr(755,root,root) %{gcclib}/collect2 | |
179 | %attr(755,root,root) %{gcclib}/cc1obj | |
180 | %attr(755,root,root) %{gcclib}/cc1plus | |
181 | ||
182 | %dir %{gcclib}/install-tools | |
183 | %attr(755,root,root) %{gcclib}/install-tools/* | |
184 | ||
185 | %dir %{arch}/%{target} | |
186 | ||
187 | # toolchain symlinks | |
188 | %dir %{arch}/%{target}/bin | |
189 | %{arch}/%{target}/bin/ar | |
190 | %{arch}/%{target}/bin/as | |
191 | %{arch}/%{target}/bin/c++ | |
192 | %{arch}/%{target}/bin/g++ | |
193 | %{arch}/%{target}/bin/gcc | |
194 | %{arch}/%{target}/bin/ld | |
195 | %{arch}/%{target}/bin/nm | |
196 | %{arch}/%{target}/bin/objcopy | |
197 | %{arch}/%{target}/bin/objdump | |
198 | %{arch}/%{target}/bin/ranlib | |
199 | %{arch}/%{target}/bin/strip | |
200 | ||
201 | # libc-devel | |
202 | %dir %{_includedir} | |
203 | %{_includedir}/*.h | |
204 | %{_includedir}/machine | |
205 | %{_includedir}/sys | |
206 | %{_includedir}/bits | |
207 | ||
208 | # libstdc++-devel | |
209 | %dir %{_includedir}/c++ | |
210 | %{_includedir}/c++/%{gcc_ver} | |
211 | ||
212 | # binutils | |
213 | %dir %{arch}/%{target}/lib | |
214 | %dir %{arch}/%{target}/lib/32 | |
215 | %{arch}/%{target}/lib/crt0.o | |
216 | %{arch}/%{target}/lib/ldscripts | |
217 | ||
218 | # binutils-devel | |
219 | %{arch}/%{target}/lib/libc.a | |
220 | %{arch}/%{target}/lib/libcrt_common.a | |
221 | %{arch}/%{target}/lib/libg.a | |
6df38a61 | 222 | #%{arch}/%{target}/lib/libiberty.a |
59bfc2f3 ER |
223 | %{arch}/%{target}/lib/libm.a |
224 | %{arch}/%{target}/lib/libobjc.a | |
225 | %{arch}/%{target}/lib/libstdc++.a | |
226 | %{arch}/%{target}/lib/libsupc++.a | |
227 | ||
228 | %dir %{arch}/%{target}/lib32 | |
229 | %{arch}/%{target}/lib32/crt0.o | |
230 | %{arch}/%{target}/lib32/libc.a | |
231 | %{arch}/%{target}/lib32/libcrt_common.a | |
232 | %{arch}/%{target}/lib32/libg.a | |
6df38a61 | 233 | #%{arch}/%{target}/lib32/libiberty.a |
59bfc2f3 ER |
234 | %{arch}/%{target}/lib32/libm.a |
235 | %{arch}/%{target}/lib32/libobjc.a | |
236 | %{arch}/%{target}/lib32/libstdc++.a | |
237 | %{arch}/%{target}/lib32/libsupc++.a | |
238 | %{arch}/%{target}/lib64 |