source: rtems/contrib/crossrpms/rtems4.10/m32r/rtems-4.10-m32r-rtems4.10-gcc.spec @ 1bb1f322

4.104.115
Last change on this file since 1bb1f322 was 1bb1f322, checked in by Ralf Corsepius <ralf.corsepius@…>, on 04/17/09 at 02:23:14

Regenerate.

  • Property mode set to 100644
File size: 14.3 KB
RevLine 
[2abe16dd]1#
2# Please send bugfixes or comments to
3#       http://www.rtems.org/bugzilla
4#
5
[05c66cf]6%define _prefix                 /opt/rtems-4.10
7%define _exec_prefix            %{_prefix}
8%define _bindir                 %{_exec_prefix}/bin
9%define _sbindir                %{_exec_prefix}/sbin
10%define _libexecdir             %{_exec_prefix}/libexec
11%define _datarootdir            %{_prefix}/share
12%define _datadir                %{_datarootdir}
13%define _sysconfdir             %{_prefix}/etc
14%define _sharedstatedir         %{_prefix}/com
15%define _localstatedir          %{_prefix}/var
16%define _includedir             %{_prefix}/include
17%define _libdir                 %{_exec_prefix}/%{_lib}
18%define _mandir                 %{_datarootdir}/man
19%define _infodir                %{_datarootdir}/info
20%define _localedir              %{_datarootdir}/locale
[2abe16dd]21
22%ifos cygwin cygwin32 mingw mingw32
23%define _exeext .exe
[35381baa]24%define debug_package           %{nil}
25%define _libdir                 %{_exec_prefix}/lib
[2abe16dd]26%else
27%define _exeext %{nil}
28%endif
29
30%ifos cygwin cygwin32
31%define optflags -O3 -pipe -march=i486 -funroll-loops
[35381baa]32%endif
33
34%ifos mingw mingw32
35%if %{defined _mingw32_cflags}
36%define optflags %{_mingw32_cflags}
37%else
38%define optflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -mms-bitfields
39%endif
[2abe16dd]40%endif
41
42%if "%{_build}" != "%{_host}"
43%define _host_rpmprefix rtems-4.10-%{_host}-
44%else
45%define _host_rpmprefix %{nil}
46%endif
47
48
[9937a7a]49%define gcc_pkgvers 4.4.0-RC-20090414
50%define gcc_version 4.4.0
51%define gcc_rpmvers %{expand:%(echo "4.4.0" | tr - _ )}
[2abe16dd]52
[8ffd16bb]53%define newlib_pkgvers          1.17.0
54%define newlib_version          1.17.0
[2abe16dd]55
56%define mpfr_version    2.3.1
57
58Name:           rtems-4.10-m32r-rtems4.10-gcc
59Summary:        m32r-rtems4.10 gcc
60
61Group:          Development/Tools
62Version:        %{gcc_rpmvers}
[1bb1f322]63Release:        2%{?dist}
[2abe16dd]64License:        GPL
65URL:            http://gcc.gnu.org
66BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
67
68%define _use_internal_dependency_generator 0
69
70BuildRequires:  %{_host_rpmprefix}gcc
71
72%if "%{gcc_version}" >= "4.3.0"
73BuildRequires:  gmp-devel >= 4.1
74%if "%{_build}" != "%{_host}"
75BuildRequires:  %{_host_rpmprefix}gmp-devel
76BuildRequires:  %{_host_rpmprefix}mpfr-devel
77%endif
78%if 0%{?fedora} >= 8
79BuildRequires:  mpfr-devel >= 2.3.0
80%endif
81%if "%{?suse}" > "10.3"
82BuildRequires:  mpfr-devel >= 2.3.0
83%endif
84# These distros ship an insufficient mpfr
85%{?el4:%define  _build_mpfr     1}
86%{?suse10_3:%define     _build_mpfr     1}
87%endif
88
89%if "%{_build}" != "%{_host}"
[35381baa]90BuildRequires:  rtems-4.10-m32r-rtems4.10-gcc = %{gcc_rpmvers}
[2abe16dd]91%endif
92
93%if "%{gcc_version}" >= "4.2.0"
94BuildRequires:  flex bison
95%endif
96
97
98BuildRequires:  texinfo >= 4.2
99BuildRequires:  rtems-4.10-m32r-rtems4.10-binutils
100
101Requires:       rtems-4.10-m32r-rtems4.10-binutils
[1bb1f322]102Requires:       rtems-4.10-m32r-rtems4.10-newlib = %{newlib_version}-35%{?dist}
[2abe16dd]103
104
105%if "%{gcc_version}" >= "3.4"
106%define gcclib %{_libdir}/gcc
107%define gccexec %{_libexecdir}/gcc
108%else
109%define gcclib %{_libdir}/gcc-lib
110%define gccexec %{_libdir}/gcc-lib
111%endif
112
[11feece9]113%if "%{gcc_version}" == "4.3.3"
[2abe16dd]114Source0:        ftp://ftp.gnu.org/pub/gnu/gcc/%{gcc_pkgvers}/gcc-core-%{gcc_pkgvers}.tar.bz2
[11feece9]115Patch0:         ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gcc-core-4.3.3-rtems4.10-20090125.diff
[2abe16dd]116%endif
[9937a7a]117%if "%{gcc_version}" == "4.4.0"
118Source0:        ftp://gcc.gnu.org/pub/gcc/snapshots/%{gcc_pkgvers}/gcc-core-%{gcc_pkgvers}.tar.bz2
[1bb1f322]119Patch0:         ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gcc-core-%{gcc_pkgvers}-rtems4.10-20090415.diff
[9937a7a]120%endif
[2abe16dd]121%{?_without_sources:NoSource:   0}
122
[c51f900b]123%if "%{newlib_version}" == "1.17.0"
[8429438]124Source50:       ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
[c033221]125Patch50:        ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/newlib-1.17.0-rtems4.10-20090311.diff
[2abe16dd]126%endif
127%{?_without_sources:NoSource:   50}
128
129%if "%{gcc_version}" >= "4.3.0"
130Source60:    http://www.mpfr.org/mpfr-current/mpfr-%{mpfr_version}.tar.bz2
131%endif
132
133%description
134Cross gcc for m32r-rtems4.10.
135
136%prep
137%setup -c -T -n %{name}-%{version}
138
139%setup -q -T -D -n %{name}-%{version} -a0
140%{?PATCH0:%patch0 -p0}
141
142
143
144
145
146
147%setup -q -T -D -n %{name}-%{version} -a50
148cd newlib-%{newlib_version}
149%{?PATCH50:%patch50 -p1}
150cd ..
151  # Copy the C library into gcc's source tree
152  ln -s ../newlib-%{newlib_version}/newlib gcc-%{gcc_pkgvers}
153
154%if 0%{?_build_mpfr}
155%setup -q -T -D -n %{name}-%{version} -a60
156%{?PATCH60:%patch60 -p1}
157  # Build mpfr one-tree style
158  ln -s ../mpfr-%{mpfr_version} gcc-%{gcc_pkgvers}/mpfr
159%endif
160
161%if "%{gcc_version}" < "4.1.0"
162  sed -e 's/\(version_string.* = \"[^\"]*\)/\1 (RTEMS gcc-%{gcc_version}\/newlib-%{newlib_version}-%release)/' \
163  gcc-%{gcc_pkgvers}/gcc/version.c > gcc-%{gcc_pkgvers}/gcc/version.c~
164%else
165  sed -e 's/^#define VERSUFFIX.*$/#define VERSUFFIX \" (RTEMS gcc-%{gcc_version}\/newlib-%{newlib_version}-%{release})\"/' \
166    gcc-%{gcc_pkgvers}/gcc/version.c > gcc-%{gcc_pkgvers}/gcc/version.c~
167%endif
168  mv gcc-%{gcc_pkgvers}/gcc/version.c~ gcc-%{gcc_pkgvers}/gcc/version.c
169
170
171  # Fix timestamps
172  cd gcc-%{gcc_pkgvers}
173  contrib/gcc_update --touch
174  cd ..
175%build
176  mkdir -p build
177
178  cd build
179
180  languages="c"
181  export PATH="%{_bindir}:${PATH}"
182%if "%{_build}" != "%{_host}"
183  CFLAGS_FOR_BUILD="-g -O2 -Wall" \
184  CC="%{_host}-gcc ${RPM_OPT_FLAGS}" \
185%else
[05c66cf]186# gcc is not ready to be compiled with -std=gnu99
187  CC=$(echo "%{__cc} ${RPM_OPT_FLAGS}" | sed -e 's,-std=gnu99 ,,') \
[2abe16dd]188%endif
189  ../gcc-%{gcc_pkgvers}/configure \
190    --prefix=%{_prefix} \
191    --bindir=%{_bindir} \
192    --exec_prefix=%{_exec_prefix} \
193    --includedir=%{_includedir} \
194    --libdir=%{_libdir} \
195    --libexecdir=%{_libexecdir} \
196    --mandir=%{_mandir} \
197    --infodir=%{_infodir} \
198    --datadir=%{_datadir} \
199    --build=%_build --host=%_host \
200    --target=m32r-rtems4.10 \
201    --disable-libstdcxx-pch \
202    --with-gnu-as --with-gnu-ld --verbose \
203    --with-newlib \
204    --with-system-zlib \
205    --disable-nls --without-included-gettext \
206    --disable-win32-registry \
207    --enable-version-specific-runtime-libs \
208    --enable-threads \
209    --enable-newlib-io-c99-formats \
210    --enable-languages="$languages" $optargs
211
212%if "%_host" != "%_build"
213  # Bug in gcc-3.2.1:
214  # Somehow, gcc doesn't get syslimits.h right for Cdn-Xs
215  mkdir -p gcc/include
216  cp ../gcc-%{gcc_pkgvers}/gcc/gsyslimits.h gcc/include/syslimits.h
217%endif
218
219  make %{?_smp_mflags} all
220  cd ..
221
222%install
223  export PATH="%{_bindir}:${PATH}"
224  rm -rf $RPM_BUILD_ROOT
225
226  cd build
227
228  make DESTDIR=$RPM_BUILD_ROOT install
229  cd ..
230
231  cd build/m32r-rtems4.10/newlib
232  make DESTDIR=$RPM_BUILD_ROOT install-info
233  cd ../../..
234
235%if "%{gcc_version}" <= "4.1.2"
236# Misplaced header file
237  if test -f $RPM_BUILD_ROOT%{_includedir}/mf-runtime.h; then
238    mv $RPM_BUILD_ROOT%{_includedir}/mf-runtime.h \
239      $RPM_BUILD_ROOT%{gcclib}/m32r-rtems4.10/%{gcc_version}/include/
240  fi
241%endif
242
243  # host library
244  rm -f  ${RPM_BUILD_ROOT}%{_libdir}/libiberty.a
245
246  # We use the version from binutils
247  rm -f $RPM_BUILD_ROOT%{_bindir}/m32r-rtems4.10-c++filt%{_exeext}
248
249
250# Conflict with a native GCC's infos
251  rm -rf $RPM_BUILD_ROOT%{_infodir}
252
253# Conflict with a native GCC's man pages
254  rm -rf $RPM_BUILD_ROOT%{_mandir}/man7
255
256
257%if "%{gcc_version}" >= "3.4"
258  # Bug in gcc-3.4.0pre
259  rm -f $RPM_BUILD_ROOT%{_bindir}/m32r-rtems4.10-m32r-rtems4.10-gcjh%{_exeext}
260%endif
261
262%if "%{gcc_version}" >= "3.3"
263  # Bug in gcc-3.3.x/gcc-3.4.x: Despite we don't need fixincludes, it installs
264  # the fixinclude-install-tools
265  rm -rf ${RPM_BUILD_ROOT}%{gcclib}/m32r-rtems4.10/%{gcc_version}/install-tools
266  rm -rf ${RPM_BUILD_ROOT}%{gccexec}/m32r-rtems4.10/%{gcc_version}/install-tools
267%endif
268
[241a259d]269  # Bug in gcc > 4.1.0: Installs an unused, empty directory
270  if test -d ${RPM_BUILD_ROOT}%{_prefix}/m32r-rtems4.10/include/bits; then
271    rmdir ${RPM_BUILD_ROOT}%{_prefix}/m32r-rtems4.10/include/bits
272  fi
[49a5e79]273
[2abe16dd]274  # Collect multilib subdirectories
275  f=`build/gcc/xgcc -Bbuild/gcc/ --print-multi-lib | sed -e 's,;.*$,,'`
276
277  echo "%defattr(-,root,root,-)" > build/files.newlib
278  TGTDIR="%{_exec_prefix}/m32r-rtems4.10/lib"
279  for i in $f; do
280    case $i in
281    \.) echo "%dir ${TGTDIR}" >> build/files.newlib
282      ;;
283    *)  echo "%dir ${TGTDIR}/$i" >> build/files.newlib
284      ;;
285    esac
286  done
287
288  rm -f dirs ;
289  echo "%defattr(-,root,root,-)" >> dirs
290  echo "%dir %{_prefix}" >> dirs
291  echo "%dir %{_libdir}" >> dirs
292%if "%{gcc_version}" >= "3.4"
293  echo "%dir %{_libexecdir}" >> dirs
294%endif
295  echo "%dir %{gcclib}" >> dirs
296  echo "%dir %{gcclib}/m32r-rtems4.10" >> dirs
297
298  TGTDIR="%{gcclib}/m32r-rtems4.10/%{gcc_version}"
299  for i in $f; do
300    case $i in
301    \.) echo "%dir ${TGTDIR}" >> dirs
302      ;;
303    *)  echo "%dir ${TGTDIR}/$i" >> dirs
304      ;;
305    esac
306  done
307
308  # Collect files to go into different packages
309  cp dirs build/files.gcc
310  cp dirs build/files.g77
311  cp dirs build/files.gfortran
312  cp dirs build/files.objc
313  cp dirs build/files.gcj
314  cp dirs build/files.g++
315
316  TGTDIR="%{gcclib}/m32r-rtems4.10/%{gcc_version}"
317  f=`find ${RPM_BUILD_ROOT}${TGTDIR} ! -type d -print | sed -e "s,^$RPM_BUILD_ROOT,,g"`;
318  for i in $f; do
319    case $i in
320    *lib*.la) rm ${RPM_BUILD_ROOT}/$i ;; # ignore: gcc produces bogus libtool libs
321    *f771) ;;
322    *f951) ;;
323    *cc1) ;;
324    *cc1obj) ;;
325    *cc1plus) ;; # ignore: explicitly put into rpm elsewhere
326    *collect2) ;;
327    *libobjc*) echo "$i" >> build/files.objc ;;
328    *include/objc*) ;;
329    *include/g++*);;
330    *include/c++*);;
331    *adainclude*);;
332    *adalib*);;
333    *gnat1);;
334    *jc1) ;;
335    *jvgenmain) ;;
336    */libgfortran*.*) echo "$i" >> build/files.gfortran ;;
337    */libstdc++.*) echo "$i" >> build/files.g++ ;;
338    */libsupc++.*) echo "$i" >> build/files.g++ ;;
339    *) echo "$i" >> build/files.gcc ;;
340    esac
341  done
342
343  TGTDIR="%{_exec_prefix}/m32r-rtems4.10/lib"
344  f=`find ${RPM_BUILD_ROOT}${TGTDIR} ! -type d -print | sed -e "s,^$RPM_BUILD_ROOT,,g"`;
345  for i in $f; do
346    case $i in
347    *lib*.la) rm ${RPM_BUILD_ROOT}/$i;; # ignore - gcc produces bogus libtool libs
348    *libiberty.a) rm ${RPM_BUILD_ROOT}/$i ;; # ignore - GPL'ed
349# all other files belong to newlib
350    *) echo "$i" >> build/files.newlib ;;
351    esac
352  done
353# Extract %%__os_install_post into os_install_post~
354cat << \EOF > os_install_post~
355%__os_install_post
356EOF
357
358# Generate customized brp-*scripts
359cat os_install_post~ | while read a x y; do
360case $a in
361# Prevent brp-strip* from trying to handle foreign binaries
362*/brp-strip*)
363  b=$(basename $a)
364  sed -e 's,find $RPM_BUILD_ROOT,find $RPM_BUILD_ROOT%_bindir $RPM_BUILD_ROOT%_libexecdir,' $a > $b
365  chmod a+x $b
366  ;;
367# Fix up brp-compress to handle %%_prefix != /usr
368*/brp-compress*)
369  b=$(basename $a)
370  sed -e 's,\./usr/,.%{_prefix}/,g' < $a > $b
371  chmod a+x $b
372  ;;
373esac
374done
375
376sed -e 's,^[ ]*/usr/lib/rpm.*/brp-strip,./brp-strip,' \
377  -e 's,^[ ]*/usr/lib/rpm.*/brp-compress,./brp-compress,' \
378< os_install_post~ > os_install_post
379%define __os_install_post . ./os_install_post
380
381
382cat << EOF > %{_builddir}/%{name}-%{gcc_rpmvers}/find-provides
383#!/bin/sh
384grep -E -v '^${RPM_BUILD_ROOT}%{_exec_prefix}/m32r-rtems4.10/(lib|include|sys-root)' \
385  | grep -v '^${RPM_BUILD_ROOT}%{gcclib}/m32r-rtems4.10/' | %__find_provides
386EOF
387chmod +x %{_builddir}/%{name}-%{gcc_rpmvers}/find-provides
388%define __find_provides %{_builddir}/%{name}-%{gcc_rpmvers}/find-provides
389
390cat << EOF > %{_builddir}/%{name}-%{gcc_rpmvers}/find-requires
391#!/bin/sh
392grep -E -v '^${RPM_BUILD_ROOT}%{_exec_prefix}/m32r-rtems4.10/(lib|include|sys-root)' \
393  | grep -v '^${RPM_BUILD_ROOT}%{gcclib}/m32r-rtems4.10/' | %__find_requires
394EOF
395chmod +x %{_builddir}/%{name}-%{gcc_rpmvers}/find-requires
396%define __find_requires %{_builddir}/%{name}-%{gcc_rpmvers}/find-requires
397
[f1322b47]398%ifnarch noarch
[05c66cf]399# Extract %%__debug_install_post into debug_install_post~
400cat << \EOF > debug_install_post~
401%__debug_install_post
402EOF
403
404# Generate customized debug_install_post script
405cat debug_install_post~ | while read a x y; do
406case $a in
407# Prevent find-debuginfo.sh* from trying to handle foreign binaries
408*/find-debuginfo.sh)
409  b=$(basename $a)
410  sed -e 's,find "$RPM_BUILD_ROOT" !,find "$RPM_BUILD_ROOT"%_bindir "$RPM_BUILD_ROOT"%_libexecdir !,' $a > $b
411  chmod a+x $b
412  ;;
413esac
414done
415
416sed -e 's,^[ ]*/usr/lib/rpm/find-debuginfo.sh,./find-debuginfo.sh,' \
417< debug_install_post~ > debug_install_post
418%define __debug_install_post . ./debug_install_post
419
[f1322b47]420%endif
[05c66cf]421
[2abe16dd]422%clean
423  rm -rf $RPM_BUILD_ROOT
424
425# ==============================================================
426# rtems-4.10-m32r-rtems4.10-gcc
427# ==============================================================
428# %package -n rtems-4.10-m32r-rtems4.10-gcc
429# Summary:        GNU cc compiler for m32r-rtems4.10
430# Group:          Development/Tools
431# Version:        %{gcc_rpmvers}
432# Requires:       rtems-4.10-m32r-rtems4.10-binutils
[1bb1f322]433# Requires:       rtems-4.10-m32r-rtems4.10-newlib = %{newlib_version}-35%{?dist}
[2abe16dd]434# License:      GPL
435
436# %if %build_infos
437# Requires:      rtems-4.10-gcc-common
438# %endif
439
440%description -n rtems-4.10-m32r-rtems4.10-gcc
441GNU cc compiler for m32r-rtems4.10.
442
443%files -n rtems-4.10-m32r-rtems4.10-gcc -f build/files.gcc
444%defattr(-,root,root)
445%dir %{_mandir}
446%dir %{_mandir}/man1
447%{_mandir}/man1/m32r-rtems4.10-gcc.1*
448%if "%{gcc_version}" >= "3.4"
449%{_mandir}/man1/m32r-rtems4.10-cpp.1*
450%{_mandir}/man1/m32r-rtems4.10-gcov.1*
451%endif
452
453%dir %{_bindir}
454%{_bindir}/m32r-rtems4.10-cpp%{_exeext}
455%{_bindir}/m32r-rtems4.10-gcc%{_exeext}
456%if "%{gcc_version}" >= "3.3"
457%{_bindir}/m32r-rtems4.10-gcc-%{gcc_version}%{_exeext}
458%endif
459%{_bindir}/m32r-rtems4.10-gcov%{_exeext}
460%{_bindir}/m32r-rtems4.10-gccbug
461
462%dir %{gcclib}/m32r-rtems4.10/%{gcc_version}/include
463%if "%{gcc_version}" > "4.0.3"
464%if "m32r-rtems4.10" != "bfin-rtems4.10"
465%if "m32r-rtems4.10" != "avr-rtems4.10"
466%dir %{gcclib}/m32r-rtems4.10/%{gcc_version}/include/ssp
467%endif
468%endif
469%endif
470
[719a5c7]471%if "%{gcc_version}" >= "4.3.0"
472%dir %{gcclib}/m32r-rtems4.10/%{gcc_version}/include-fixed
473%endif
474
[2abe16dd]475%dir %{gccexec}
476%dir %{gccexec}/m32r-rtems4.10
477%dir %{gccexec}/m32r-rtems4.10/%{gcc_version}
478%{gccexec}/m32r-rtems4.10/%{gcc_version}/cc1%{_exeext}
479%{gccexec}/m32r-rtems4.10/%{gcc_version}/collect2%{_exeext}
480
481
482
483
484# ==============================================================
485# rtems-4.10-m32r-rtems4.10-newlib
486# ==============================================================
487%package -n rtems-4.10-m32r-rtems4.10-newlib
488Summary:        C Library (newlib) for m32r-rtems4.10
489Group:          Development/Tools
490License:        Distributable
491Version:        %{newlib_version}
[1bb1f322]492Release:        35%{?dist}
[2abe16dd]493
494
495%description -n rtems-4.10-m32r-rtems4.10-newlib
496Newlib C Library for m32r-rtems4.10.
497
498%files -n rtems-4.10-m32r-rtems4.10-newlib -f build/files.newlib
499%defattr(-,root,root)
500%dir %{_prefix}
501%dir %{_exec_prefix}/m32r-rtems4.10
502%{_exec_prefix}/m32r-rtems4.10/include
503
Note: See TracBrowser for help on using the repository browser.