aboutsummaryrefslogtreecommitdiffstats
path: root/graphics
diff options
context:
space:
mode:
authorsobomax <sobomax@FreeBSD.org>2001-11-16 07:32:37 +0800
committersobomax <sobomax@FreeBSD.org>2001-11-16 07:32:37 +0800
commit2967a062cd1073228d37f4c6312bef4023fd5f14 (patch)
tree7ee3cc0a18c63b81a16335f87a8120049e8d350c /graphics
parentc49e6ad894a82f9d38f683bfe0cf391e6a15eea5 (diff)
downloadfreebsd-ports-gnome-2967a062cd1073228d37f4c6312bef4023fd5f14.tar.gz
freebsd-ports-gnome-2967a062cd1073228d37f4c6312bef4023fd5f14.tar.zst
freebsd-ports-gnome-2967a062cd1073228d37f4c6312bef4023fd5f14.zip
Once we are determined that CPUID instruction is or isn't supported resfore
initial state of the bit 21 of the eflag register. This reduces possibility that the threaded program linked with libpng will die due to arrival of the signal during probing for the CPU type. More proper fix has been committed into the -current kernel and will be MFC'ed soon, but this workaround is necessary for those with older systems. Among other things, this should make Nautilus, Balsa and other multi-threaded GNOME programs more stable, therefore update is recommended to all existing users. Bump PORTREVISION. Reported by: Joe Clarke <marcus@marcuscom.com>
Diffstat (limited to 'graphics')
-rw-r--r--graphics/png/Makefile1
-rw-r--r--graphics/png/files/patch-pnggccrd.c14
2 files changed, 15 insertions, 0 deletions
diff --git a/graphics/png/Makefile b/graphics/png/Makefile
index 3296b9462240..a33011a43111 100644
--- a/graphics/png/Makefile
+++ b/graphics/png/Makefile
@@ -7,6 +7,7 @@
PORTNAME= png
PORTVERSION= 1.2.0
+PORTREVISION= 1
CATEGORIES= graphics
MASTER_SITES= http://www.libpng.org/pub/png/src/ \
ftp://swrinde.nde.swri.edu/pub/png/src/ \
diff --git a/graphics/png/files/patch-pnggccrd.c b/graphics/png/files/patch-pnggccrd.c
new file mode 100644
index 000000000000..ed22c5e08fb3
--- /dev/null
+++ b/graphics/png/files/patch-pnggccrd.c
@@ -0,0 +1,14 @@
+
+$FreeBSD$
+
+--- pnggccrd.c 2001/11/15 23:03:00 1.1
++++ pnggccrd.c 2001/11/15 23:07:03
+@@ -5287,6 +5287,8 @@
+ "popfl \n\t" // restore modified value to Eflag reg
+ "pushfl \n\t" // save Eflag to stack
+ "popl %%eax \n\t" // get Eflag from stack
++ "pushl %%ecx \n\t" // save original Eflag to stack
++ "popfl \n\t" // restore original Eflag
+ "xorl %%ecx, %%eax \n\t" // compare new Eflag with original Eflag
+ "jz .NOT_SUPPORTED \n\t" // if same, CPUID instr. is not supported
+