]> git.pld-linux.org Git - packages/crossnacl-gcc.git/blob - crossnacl-gcc.spec
- update for omahaproxy changes
[packages/crossnacl-gcc.git] / crossnacl-gcc.spec
1 #
2 # Conditional build:
3 %bcond_with     bootstrap               # build without NaCL newlib package dependency (without c++ package)
4
5 %define         gitver  455063d
6 Summary:        Various compilers (C, C++) for NaCl
7 Name:           crossnacl-gcc
8 Version:        4.4.3
9 Release:        6.git%{gitver}
10 License:        GPL v3+ and GPL v3+ with exceptions and GPL v2+ with exceptions
11 Group:          Development/Languages
12 Source0:        nacl-gcc-%{version}-git%{gitver}.tar.xz
13 # Source0-md5:  dd49a8726695a06c7fe9fc531dc6c637
14 Source1:        get-source.sh
15 URL:            http://sourceware.org/gcc/
16 BuildRequires:  cloog-ppl-devel
17 BuildRequires:  crossnacl-binutils
18 BuildRequires:  elfutils-devel
19 BuildRequires:  gmp-c++-devel
20 BuildRequires:  gmp-devel
21 BuildRequires:  mpfr-devel
22 BuildRequires:  ppl-pwl-devel
23 BuildRequires:  tar >= 1:1.22
24 BuildRequires:  xz
25 BuildConflicts: cloog-isl-devel
26 %if %{without bootstrap}
27 BuildRequires:  crossnacl-newlib
28 %endif
29 ExclusiveArch:  %{ix86} %{x8664}
30 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
31
32 %define         target          x86_64-nacl
33 %define         arch            %{_prefix}/%{target}
34 %define         gcc_ver         %{version}
35 %define         gcclib          %{_libdir}/gcc/%{target}/%{gcc_ver}
36 %define         gccnlib         %{_prefix}/lib/gcc/%{target}/%{gcc_ver}
37
38 %define         filterout_cpp   -D_FORTIFY_SOURCE=[0-9]+
39 %define         filterout_c             -Werror=format-security
40
41 %description
42 The gcc package contains the GNU Compiler Collection version 4.4.3.
43 You'll need this package in order to compile C code.
44
45 This provides support for NaCl targets.
46
47 %package c++
48 Summary:        C++ support for crossnacl-gcc
49 Summary(pl.UTF-8):      Obsługa C++ dla crossnacl-gcc
50 Group:          Development/Languages
51 Requires:       %{name} = %{version}-%{release}
52
53 %description c++
54 This package adds C++ support to the GNU Compiler Collection for NaCl
55 targets.
56
57 %description c++ -l pl.UTF-8
58 Ten pakiet dodaje obsługę C++ do kompilatora gcc dla NaCL.
59
60 %package objc
61 Summary:        NaCL binary utility development utilities - objc
62 Summary(pl.UTF-8):      Zestaw narzędzi NaCL - objc
63 Group:          Development/Languages
64 Requires:       %{name} = %{version}-%{release}
65
66 %description objc
67 This package contains cross targeted objc compiler.
68
69 %description objc -l pl.UTF-8
70 Ten pakiet zawiera kompilator objc generujący kod pod Win32.
71
72 %prep
73 %setup -q -n nacl-gcc-%{version}-git%{?gitver}
74
75 %build
76 rm -rf obj-%{target}
77 install -d obj-%{target}
78 cd obj-%{target}
79
80 OPT_FLAGS="%{rpmcflags}"
81 OPT_FLAGS=$(echo "$OPT_FLAGS" | sed -e 's/-m64//g;s/-m32//g;s/-m31//g')
82 %ifarch %{ix86}
83 OPT_FLAGS=$(echo "$OPT_FLAGS" | sed -e 's/-march=i.86//g')
84 %endif
85 OPT_FLAGS=$(echo "$OPT_FLAGS" | sed -e 's/[[:blank:]]\+/ /g')
86
87 case "$OPT_FLAGS" in
88 *-fasynchronous-unwind-tables*)
89         %{__sed} -i -e 's/-fno-exceptions /-fno-exceptions -fno-asynchronous-unwind-tables/' \
90         ../gcc/Makefile.in
91 ;;
92 esac
93
94 GCC_DEFINES="-Dinhibit_libc -D__gthr_posix_h"
95 ../configure \
96         --prefix=%{_prefix} \
97         --mandir=%{_mandir} \
98         --infodir=%{_infodir} \
99         --libexecdir=%{_libdir} \
100         --enable-checking=release \
101         --with-system-zlib \
102         --enable-__cxa_atexit \
103         --disable-libunwind-exceptions \
104         --enable-gnu-unique-object \
105         --disable-decimal-float \
106         --disable-libgomp \
107         --disable-libmudflap \
108         --disable-libssp \
109         --disable-libstdcxx-pch \
110         --disable-shared \
111         --with-ppl --with-cloog \
112         CC="%{__cc}" \
113         CFLAGS="$OPT_FLAGS $GCC_DEFINES" \
114         CXXFLAGS="$(echo $OPT_FLAGS | sed 's/ -Wall / /g')" \
115         XCFLAGS="$OPT_FLAGS" \
116 %if %{with bootstrap}
117         --disable-threads \
118         --enable-languages="c" \
119         --without-headers \
120         CFLAGS_FOR_TARGET="-O2 -g" \
121         CXXFLAGS_FOR_TARGET="-O2 -g" \
122 %else
123         CFLAGS_FOR_TARGET="-O2 -g -mtls-use-call -I/usr/x86_64-nacl/include/" \
124         CXXFLAGS_FOR_TARGET="-O2 -g -mtls-use-call -I/usr/x86_64-nacl/include/" \
125         --enable-threads=nacl \
126         --enable-languages="c,c++,objc" \
127         --enable-tls \
128         --with-newlib \
129 %endif
130         --target=%{target} \
131         --with-host-libstdcxx="-lpwl -lstdc++ -lm" \
132         --disable-ppl-version-check \
133         --disable-libgcj
134
135 %{__make} \
136         BOOT_CFLAGS="$OPT_FLAGS" \
137 %if %{with bootstrap}
138         all-gcc all-target-libgcc
139 %else
140         all
141 %endif
142
143 %install
144 rm -rf $RPM_BUILD_ROOT
145 cd obj-%{target}
146 %{__make} \
147 %if %{with bootstrap}
148         install-gcc install-target-libgcc \
149 %else
150         install \
151 %endif
152         DESTDIR=$RPM_BUILD_ROOT
153
154 # move fixed includes to proper place
155 mv $RPM_BUILD_ROOT%{gccnlib}/include-fixed/*.h $RPM_BUILD_ROOT%{gccnlib}/include
156
157 %{__rm} -r $RPM_BUILD_ROOT%{gccnlib}/include-fixed
158 %{__rm} -r $RPM_BUILD_ROOT%{gccnlib}/install-tools
159
160 # Delete supplemental files that would conflict with the core toolchain
161 %{__rm} -r $RPM_BUILD_ROOT%{_infodir}
162 %{__rm} -r $RPM_BUILD_ROOT%{_mandir}/man7
163 # I suspect that the core toolchain locale files will work with this reasonably well.
164 %{__rm} -r $RPM_BUILD_ROOT%{_localedir}
165
166 # Don't dupe the system libiberty.a
167 %if %{without bootstrap}
168 %{__rm} $RPM_BUILD_ROOT%{_libdir}/libiberty.a
169 %{__rm} $RPM_BUILD_ROOT%{_prefix}/%{target}/lib*/libiberty.a
170 %endif
171
172 %clean
173 rm -rf $RPM_BUILD_ROOT
174
175 %files
176 %defattr(644,root,root,755)
177 %doc gcc/README*
178 %attr(755,root,root) %{_bindir}/%{target}-cpp
179 %attr(755,root,root) %{_bindir}/%{target}-gcc
180 %attr(755,root,root) %{_bindir}/%{target}-gcc-%{gcc_ver}
181 %attr(755,root,root) %{_bindir}/%{target}-gccbug
182 %attr(755,root,root) %{_bindir}/%{target}-gcov
183
184 %if "%{_lib}" != "lib"
185 %dir %{_prefix}/lib/gcc
186 %dir %{_prefix}/lib/gcc/%{target}
187 %dir %{gccnlib}
188 %endif
189
190 %{gccnlib}/*.[ao]
191 %dir %{gccnlib}/include
192 %{gccnlib}/include/*.h
193
194 %dir %{gccnlib}/32
195 %{gccnlib}/32/*.[oa]
196
197 %dir %{_libexecdir}
198 %dir %{_libexecdir}/gcc
199 %dir %{_libexecdir}/gcc/%{target}
200 %dir %{gcclib}
201 %attr(755,root,root) %{gcclib}/cc1
202 %attr(755,root,root) %{gcclib}/collect2
203
204 %if "%{_lib}" != "lib"
205 # not present on ix86, not needed?
206 %dir %{gcclib}/install-tools
207 %attr(755,root,root) %{gcclib}/install-tools/*
208 %endif
209
210 %{_mandir}/man1/%{target}-cpp.*
211 %{_mandir}/man1/%{target}-gcc.*
212 %{_mandir}/man1/%{target}-gcov.*
213
214 %if %{without bootstrap}
215 %files c++
216 %defattr(644,root,root,755)
217 %attr(755,root,root) %{_bindir}/%{target}-c++
218 %attr(755,root,root) %{_bindir}/%{target}-g++
219 %attr(755,root,root) %{gcclib}/cc1plus
220 %{_prefix}/%{target}/include/c++
221 %dir %{_prefix}/%{target}/lib32
222 %dir %{_prefix}/%{target}/lib64
223 %{_prefix}/%{target}/lib*/libstdc++.*a
224 %{_prefix}/%{target}/lib*/libsupc++.*a
225 %{_mandir}/man1/%{target}-g++.*
226
227 %files objc
228 %defattr(644,root,root,755)
229 %attr(755,root,root) %{gcclib}/cc1obj
230 %{_prefix}/%{target}/lib*/libobjc.*a
231 %{gccnlib}/include/objc
232 %endif
This page took 0.709273 seconds and 3 git commands to generate.