blob: 6fbf41a0e58c1c0cbbbadb4ab57b05a95a9ee0dc (
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
|
# Contributor: carstene1ns <arch carsten-teibes de>
# Contributor: felix <base64 -d <<< ZmVsaXgudm9uLnNAcG9zdGVvLmRlCg==>
# Contributor: janezz55
pkgname=dosbox-gcc
pkgver=11.3.0
_target="i586-pc-msdosdjgpp"
_islver=0.24
_djver=2.05
pkgrel=2
pkgdesc="djgpp cross-compiler for the dosbox environment"
arch=('i686' 'x86_64')
url="http://gcc.gnu.org"
license=('GPL' 'LGPL' 'FDL' 'custom')
groups=('djgpp')
depends=('zlib' 'libmpc' 'dosbox-binutils')
makedepends=('unzip' 'tar' 'xz')
optdepends=('dosbox-djcrx: headers and utilities')
options=('!strip' 'staticlibs' '!emptydirs')
source=("https://ftp.gnu.org/gnu/gcc/gcc-${pkgver}/gcc-$pkgver.tar.xz"
"ftp://www.delorie.com/pub/djgpp/current/v2/djcrx${_djver//./}.zip"
"https://libisl.sourceforge.io/isl-${_islver}.tar.xz"
"gcc-djgpp.diff"
"lto.patch")
sha256sums=('SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP')
noextract=("gcc-$pkgver.tar.xz"
"djcrx${_djver//./}.zip")
prepare() {
tar Jxf gcc-$pkgver.tar.xz
# gcc hacks
cd $srcdir/gcc-$pkgver
# link isl for in-tree build
ln -fs "../isl-${_islver}" isl
# hack! - some configure tests for header files break with FORTIFY_SOURCE
sed -i "/ac_cpp=/ s/\$CPPFLAGS/\$CPPFLAGS -O2/" {libiberty,gcc}/configure
# build the lto plugin
patch -Np0 < ../lto.patch
# Other DJGPP related changes
patch -Np1 < ../gcc-djgpp.diff
# extract bootstrap djcrx
mkdir -p ../gcc-build-$_target/lib/gcc/$_target/$pkgver
cd ../gcc-build-${_target}/lib/gcc/$_target/$pkgver
unzip -qoW "$srcdir/djcrx${_djver//./}.zip" 'include/**' 'lib/*.[oa]'
mv lib/* .
}
build() {
cd gcc-build-$_target
../gcc-$pkgver/configure \
--prefix=/usr \
--libexecdir=/usr/lib \
--datarootdir=/usr/$_target/share \
--target="$_target" \
--with-arch=i586 \
--with-cpu=i586 \
--with-isl \
--with-system-zlib \
--disable-decimal-float \
--disable-gcov \
--disable-ld \
--disable-nls \
--disable-install-libiberty \
--disable-libssp \
--disable-libquadmath \
--disable-libquadmath-support \
--disable-libgomp \
--disable-libsanitizer \
--disable-multilib \
--enable-gold \
--enable-languages=c,c++ \
--enable-lto \
--enable-shared \
--enable-static \
--disable-threads \
--disable-libstdcxx-pch \
--disable-libstdcxx-threads \
--enable-cxx-flags="-O3 -fno-plt" \
--enable-libstdcxx-filesystem-ts \
--enable-libstdcxx-time=no \
--enable-checking=release
make all-gcc
export ac_cv_func_dlopen=no
export ac_cv_func_shl_load=no
export ac_cv_lib_dld_shl_load=no
export ac_cv_lib_dl_dlopen=no
export ac_cv_lib_svld_dlopen=no
export ac_cv_lib_dld_dld_link=no
cd $srcdir/gcc-build-$_target
make all
}
package_dosbox-gcc() {
echo ...installing
make -C gcc-build-$_target DESTDIR="$pkgdir/" install
# strip manually, djgpp libs spew errors otherwise
strip -s "$pkgdir"/usr/bin/$_target-*
strip -s "$pkgdir"/usr/lib/gcc/$_target/$pkgver/{cc1*,collect2,lto*}
# for compatibility
ln -sf $_target-gcc "$pkgdir"/usr/bin/$_target-cc
# remove unnecessary files
rm -rf "$pkgdir"/usr/$_target/share/{man,info,locale}
rm -rf "$pkgdir"/usr/share/{man,info,locale}
rm -rf "$pkgdir"/usr/lib/gcc/$_target/$pkgver/include-fixed
rm -f "$pkgdir"/usr/lib/libcc1.*
}
|