summaryrefslogtreecommitdiff
path: root/graphics/png
diff options
context:
space:
mode:
authorMaxim Sobolev <sobomax@FreeBSD.org>2001-11-15 23:32:37 +0000
committerMaxim Sobolev <sobomax@FreeBSD.org>2001-11-15 23:32:37 +0000
commit1bd8c2c68885aabad1d6ac2b61165e7ca77911a2 (patch)
tree623f7203c3b98d4740d85aa22c6a95c2c5e02599 /graphics/png
parent* Add workaround for parser bug in FreeBSD's /bin/sh prior to 4.4. (diff)
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>
Notes
Notes: svn path=/head/; revision=50089
Diffstat (limited to 'graphics/png')
-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
+