]> git.pld-linux.org Git - packages/nacl-toolchain-newlib.git/blob - nacl-toolchain-newlib.spec
1b14011751a211d174699a2739262c7d75e9ace5
[packages/nacl-toolchain-newlib.git] / nacl-toolchain-newlib.spec
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
6 #   https://code.google.com/p/nativeclient/issues/detail?id=1975
7 # - /bin/sh in some wrappers:
8 #   cat i686-nacl-as
9 #   #!/bin/bash
10 # - messed up install dirs (two gcc dirs)
11 %define         nacl_revision   8034
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}
18 Release:        0.5
19 License:        BSD (NaCL), GPL v3/LGPL v3 (binutils), GPL v3+ (gcc), GPL v2(newlib)
20 Group:          Development/Languages
21 Source0:        http://gsdview.appspot.com/nativeclient-archive2/x86_toolchain/r%{nacl_revision}/nacltoolchain-buildscripts-r%{nacl_revision}.tar.gz
22 # Source0-md5:  985872dcaebb3dbb1d406910267efb06
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
30 # Patch0-md5:   8473a33e00cea1d1de041b42753e3e02
31 Patch1:         http://gsdview.appspot.com/nativeclient-archive2/x86_toolchain/r%{nacl_revision}/naclnewlib-%{newlib_ver}-r%{nacl_revision}.patch.bz2
32 # Patch1-md5:   faae6e8990cec9dde0fa8b371eb97c4e
33 Patch2:         http://gsdview.appspot.com/nativeclient-archive2/x86_toolchain/r%{nacl_revision}/naclgcc-%{gcc_ver}-r%{nacl_revision}.patch.bz2
34 # Patch2-md5:   64509546a3d2133c5f26903da46a251a
35 URL:            https://developers.google.com/native-client/
36 BuildRequires:  binutils >= 2.15.94
37 BuildRequires:  bison >= 1.875
38 BuildRequires:  cloog-ppl-devel
39 BuildRequires:  flex >= 2.5.4
40 BuildRequires:  gettext-devel
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
60 %define         target32        i686-nacl
61 %define         arch            %{_prefix}/%{target}-newlib
62 %define         _datadir        %{arch}/share
63 %define         _mandir         %{arch}/man
64 %define         _infodir        %{_datadir}/info
65 %define         _includedir     %{arch}/%{target}/include
66 %define         _libdir         %{arch}/%{target}/lib
67 %define         _libexecdir     %{arch}/libexec
68
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
75
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
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 \
99         LDFLAGS="%{rpmldflags}" \
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
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
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
149 rm -rf $RPM_BUILD_ROOT%{arch}/share/man
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
160 %attr(755,root,root) %{arch}/bin/%{target}-*
161 %attr(755,root,root) %{arch}/bin/%{target32}-*
162
163 # libc
164 %dir %{_datadir}
165 %{_datadir}/iconv_data
166
167 # gcc
168 %dir %{arch}/lib
169 %dir %{arch}/lib/gcc
170 %dir %{arch}/lib/gcc/%{target}
171 %{arch}/lib/gcc/%{target}/%{gcc_ver}
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
222 #%{arch}/%{target}/lib/libiberty.a
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
233 #%{arch}/%{target}/lib32/libiberty.a
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
This page took 0.054751 seconds and 2 git commands to generate.