summaryrefslogtreecommitdiffstats
path: root/main/gcc/APKBUILD
blob: 4668a06856ee26854338d03f5aebfdc888c3657e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=gcc
pkgver=4.4.3
_pv=4.4.2
_specsver=0.1.7
_espfver=0.3.6
_uclibc_abiver=0.9.32

pkgrel=3
pkgdesc="The GNU Compiler Collection"
url="http://gcc.gnu.org"
license="GPL LGPL"
depends="binutils libgcc libgomp"
makedepends="bison flex gmp5-dev mpfr-dev texinfo"
subpackages="$pkgname-doc libstdc++:libcxx g++:gpp libgcc libgomp"
source="ftp://gcc.gnu.org/pub/gcc/releases/gcc-$pkgver/gcc-core-$pkgver.tar.bz2
	ftp://gcc.gnu.org/pub/gcc/releases/gcc-$pkgver/gcc-g++-$pkgver.tar.bz2
	http://weaver.gentooenterprise.com/hardened/patches/gcc-$_pv-espf-$_espfver.tar.bz2
	http://weaver.gentooenterprise.com/hardened/patches/gcc-$_pv-specs-$_specsver.tar.bz2
	gcc-spec-env.patch
	pt_gnu_eh_frame.patch
	uclibc-getipinfo.patch
	gcc-dynamic-linker.patch
	"
#	ftp://gcc.gnu.org/pub/gcc/releases/gcc-$pkgver/gcc-objc-$pkgver.tar.bz2
build ()
{
	cd "$srcdir"/gcc-$pkgver

	# ESPF patches. we dont use objc yet
	rm -f ../espf-gcc-$_pv/*_objc*lang-specs*.patch
	# thanks to Zorry for hard work on those patches
	for i in ../espf-gcc-$_pv/*.patch; do
		msg "Applying $i"
		patch -p0 -i $i || return 1
	done

	# uclibc patches
	for i in ../*.patch; do
		msg "Applying $i"
		patch -p1 -i $i || return 1
	done

	echo ${pkgver} > gcc/BASE-VER
	mkdir build
	cd build
	../configure --prefix=/usr \
		--mandir=/usr/share/man \
		--infodir=/usr/share/info \
		--build=${CHOST:-i486-alpine-linux-uclibc} \
		--disable-altivec \
		--disable-checking \
		--disable-fixed-point \
		--disable-libssp \
		--disable-libstdcxx-pch \
		--disable-multilib \
		--disable-nls \
		--disable-werror \
		--enable-__cxa_atexit \
		--enable-cld \
		--enable-espf \
		--enable-languages=c,c++ \
		--enable-shared \
		--enable-target-optspace \
		--enable-tls \
		--enable-threads \
		--with-arch=i486 \
		--with-dynamic-linker=ld-uClibc.so.$_uclibc_abiver \
		--with-dynamic-linker-prefix=/lib \
		--with-system-zlib \
		--without-system-libunwind

	make || return 1
}

package() {
	cd "$srcdir"/gcc-$pkgver/build
	make -j1 DESTDIR="${pkgdir}" install || return 1
	ln -s gcc "$pkgdir"/usr/bin/cc

	# binutils provides libiberty.a
	rm -f "$pkgdir"/usr/lib/libiberty.a
	
	# install the specs
	cd "$srcdir"/specs
	install -d "$pkgdir"/usr/share/gcc
	for i in *.specs; do
		install -m644 $i "$pkgdir"/usr/share/gcc/$i || return 1
	done
}

libcxx() {
	pkgdesc="GNU C++ standard runtime library"
	depends=
	mkdir -p "$subpkgdir"/usr/lib
	mv "$pkgdir"/usr/lib/libstdc++.so* "$subpkgdir"/usr/lib/
}

gpp() {
	pkgdesc="GNU C++ standard library and compiler"
	depends="libstdc++"
	local libexec=usr/libexec/gcc/${CHOST:-i486-alpine-linux-uclibc}/$pkgver
	mkdir -p "$subpkgdir/$libexec" \
		"$subpkgdir"/usr/bin \
		"$subpkgdir"/usr/include \
		"$subpkgdir"/usr/lib \

	mv "$pkgdir/$libexec/cc1plus" "$subpkgdir/$libexec/"
	mv "$pkgdir"/usr/lib/*++* "$subpkgdir"/usr/lib/
	mv "$pkgdir"/usr/include/c++ "$subpkgdir"/usr/include/
	mv "$pkgdir"/usr/bin/*++ "$subpkgdir"/usr/bin/
}

libgcc() {
	pkgdesc="GNU C compiler runtime libraries"
	depends=
	mkdir -p "$subpkgdir"/usr/lib
	mv "$pkgdir"/usr/lib/libgcc_s.so* "$subpkgdir"/usr/lib/
}
	
libgomp() {
	pkgdesc="GCC shared-memory parallel programming API library"
	depends=
	replaces="gcc"
	mkdir -p "$subpkgdir"/usr/lib
	mv "$pkgdir"/usr/lib/libgomp.so* "$subpkgdir"/usr/lib/
}

md5sums="054b66f315b3d04ad06544ce26e72365  gcc-core-4.4.3.tar.bz2
cd179ec4f05ee17ce76464da25a2674c  gcc-g++-4.4.3.tar.bz2
72643cf4f9751d6cbfdbce483b92461d  gcc-4.4.2-espf-0.3.6.tar.bz2
528926b586b2591474b6c2a7ef8ee6d7  gcc-4.4.2-specs-0.1.7.tar.bz2
c4045bfa85d8be780affd465be9d8ca8  gcc-spec-env.patch
2db1e3482c5dd59dab70f701afa2ca80  pt_gnu_eh_frame.patch
6cc2385c5bbd6d0da6eaedd53c8bf547  uclibc-getipinfo.patch
6db5c87887beee75cde3cce86625b9ed  gcc-dynamic-linker.patch"