summaryrefslogtreecommitdiff
path: root/libre/syslinux
diff options
context:
space:
mode:
authorAndré Fabian Silva Delgado <emulatorman@lavabit.com>2012-08-12 15:08:54 -0300
committerAndré Fabian Silva Delgado <emulatorman@lavabit.com>2012-08-12 15:08:54 -0300
commitc0397909802567bce7228488890467d54a6cb415 (patch)
tree69583d9b28e3d3e9f924e1b577be74b83d03e114 /libre/syslinux
parenta3e2b8b1185c0e487600584e470b98a7f03c6e93 (diff)
downloadabslibre-c0397909802567bce7228488890467d54a6cb415.tar.gz
abslibre-c0397909802567bce7228488890467d54a6cb415.tar.bz2
abslibre-c0397909802567bce7228488890467d54a6cb415.zip
syslinux-4.05-6: updating version
Diffstat (limited to 'libre/syslinux')
-rw-r--r--libre/syslinux/PKGBUILD10
-rw-r--r--libre/syslinux/handle-ctors-dtors-via-init_array-and-fini_array.patch66
-rw-r--r--libre/syslinux/rePKGBUILD5
3 files changed, 74 insertions, 7 deletions
diff --git a/libre/syslinux/PKGBUILD b/libre/syslinux/PKGBUILD
index 6269ae93c..608316be1 100644
--- a/libre/syslinux/PKGBUILD
+++ b/libre/syslinux/PKGBUILD
@@ -4,7 +4,7 @@
pkgname=syslinux
pkgver=4.05
-pkgrel=5
+pkgrel=6
arch=('i686' 'x86_64')
pkgdesc="Collection of boot loaders that boot from FAT, ext2/3/4 and btrfs filesystems, from CDs and via PXE (Parabola rebranded)"
url="http://syslinux.zytor.com/"
@@ -13,7 +13,8 @@ depends=('perl' 'glibc')
optdepends=('perl-passwd-md5: For md5pass'
'perl-digest-sha1: For sha1pass'
'mtools: For mkdiskimage and syslinux support'
- 'gptfdisk: For GPT support')
+ 'gptfdisk: For GPT support'
+ 'util-linux: For isohybrid')
makedepends=('nasm')
backup=('boot/syslinux/syslinux.cfg'
'boot/syslinux/splash.png')
@@ -23,6 +24,7 @@ source=(http://www.kernel.org/pub/linux/utils/boot/syslinux/$pkgname-${pkgver}.t
syslinux.cfg
syslinux-install_update
avoid-using-ext2_fs.patch
+ handle-ctors-dtors-via-init_array-and-fini_array.patch
splash.png)
build() {
@@ -33,6 +35,8 @@ build() {
patch -p1 -i "$srcdir"/syslinux-dont-build-dos-windows-targets.patch
# fix #30084
patch -Np1 -i "$srcdir"/avoid-using-ext2_fs.patch
+ # fix #31065 (booting breaks with gcc 4.7)
+ patch -Np1 -i "$srcdir"/handle-ctors-dtors-via-init_array-and-fini_array.patch
# Fix FHS manpage path
sed 's|/usr/man|/usr/share/man|g' -i mk/syslinux.mk
make
@@ -51,10 +55,12 @@ package() {
install -D -m755 "$srcdir"/syslinux-install_update "$pkgdir"/usr/sbin/syslinux-install_update
# move extlinux binary to /usr/sbin
mv "$pkgdir"/sbin/extlinux "$pkgdir"/usr/sbin/extlinux
+ rmdir "$pkgdir"/sbin
}
md5sums=('82299242418385da1274c9479a778cb2'
'1528c376e43f0eaccaa80d8ad1bc13b4'
'8dc2afca3739667e892faf04eb97e7b1'
'680750f73dc2e587ac567d057d485813'
'2e2c674a71c0c0bf265d96cfc19ce985'
+ '12a2dbd3fe59230df2f470600dd62dac'
'0035b6cac6756a384b861eda8d33e4f7')
diff --git a/libre/syslinux/handle-ctors-dtors-via-init_array-and-fini_array.patch b/libre/syslinux/handle-ctors-dtors-via-init_array-and-fini_array.patch
new file mode 100644
index 000000000..99e0d4777
--- /dev/null
+++ b/libre/syslinux/handle-ctors-dtors-via-init_array-and-fini_array.patch
@@ -0,0 +1,66 @@
+From b6be466444740a34bacd140dccbe57f6629b15bc Mon Sep 17 00:00:00 2001
+From: "H. Peter Anvin" <hpa@zytor.com>
+Date: Mon, 28 May 2012 21:28:52 -0700
+Subject: [PATCH 1/1] com32.ld: handle .init_array and .fini_array
+
+Handle constructors/destructors via .init_array and .fini_array, as
+generated by newer gccs.
+
+Signed-off-by: H. Peter Anvin <hpa@zytor.com>
+---
+ com32/lib/com32.ld | 33 ++++++++++-----------------------
+ 1 files changed, 10 insertions(+), 23 deletions(-)
+
+diff --git a/com32/lib/com32.ld b/com32/lib/com32.ld
+index 37ee46c..008e4ce 100644
+--- a/com32/lib/com32.ld
++++ b/com32/lib/com32.ld
+@@ -36,36 +36,23 @@ SECTIONS
+ .rodata1 : { *(.rodata1) }
+ __rodata_end = .;
+
+- /* Ensure the __preinit_array_start label is properly aligned. We
+- could instead move the label definition inside the section, but
+- the linker would then create the section even if it turns out to
+- be empty, which isn't pretty. */
++ /*
++ * The difference betwee .ctors/.dtors and .init_array/.fini_array
++ * is the ordering, but we don't use prioritization for libcom32, so
++ * just lump them all together and hope that's okay.
++ */
+ . = ALIGN(4);
+- .preinit_array : {
+- PROVIDE (__preinit_array_start = .);
+- *(.preinit_array)
+- PROVIDE (__preinit_array_end = .);
+- }
+- .init_array : {
+- PROVIDE (__init_array_start = .);
+- *(.init_array)
+- PROVIDE (__init_array_end = .);
+- }
+- .fini_array : {
+- PROVIDE (__fini_array_start = .);
+- *(.fini_array)
+- PROVIDE (__fini_array_end = .);
+- }
+ .ctors : {
+ PROVIDE (__ctors_start = .);
+- KEEP (*(SORT(.ctors.*)))
+- KEEP (*(.ctors))
++ KEEP (*(SORT(.preinit_array*)))
++ KEEP (*(SORT(.init_array*)))
++ KEEP (*(SORT(.ctors*)))
+ PROVIDE (__ctors_end = .);
+ }
+ .dtors : {
+ PROVIDE (__dtors_start = .);
+- KEEP (*(SORT(.dtors.*)))
+- KEEP (*(.dtors))
++ KEEP (*(SORT(.fini_array*)))
++ KEEP (*(SORT(.dtors*)))
+ PROVIDE (__dtors_end = .);
+ }
+
+--
+1.7.6.5 \ No newline at end of file
diff --git a/libre/syslinux/rePKGBUILD b/libre/syslinux/rePKGBUILD
index 85ab6074e..33a96d1a1 100644
--- a/libre/syslinux/rePKGBUILD
+++ b/libre/syslinux/rePKGBUILD
@@ -27,13 +27,8 @@ build() {
package_syslinux() {
pkgdesc="Collection of boot loaders that boot from FAT, ext2/3/4 and btrfs filesystems, from CDs and via PXE (Parabola rebranded)"
- install=syslinux.install
backup=('boot/syslinux/syslinux.cfg'
'boot/syslinux/splash.png')
- optdepends=('perl-passwd-md5: For md5pass'
- 'perl-digest-sha1: For sha1pass'
- 'mtools: For mkdiskimage and syslinux support'
- 'gptfdisk: For GPT support')
# Install the default configuration
install -D -m644 "$srcdir"/syslinux.cfg "$pkgdir"/boot/syslinux/syslinux.cfg
# Install Parabola splash