Fix segfault during build with PIE-by-default on i386 by not using %ebx there.

Not quite sure why this is needed as it looks to be built without PIE
anyway, so XXX comment added to patch, but this makes things work.

N.B. regression tests fail, "error: objects are initialised from 1st to last
(should be from last to 1st) - undefine constant OBJ_CHAIN_REVERSE_ORDER in
obj_chain.h" but this is not new and they also fail on amd64.

Regen distinfo while there.
This commit is contained in:
sthen 2014-01-08 11:54:12 +00:00
parent b828496a2b
commit 945fa9eb2f
3 changed files with 28 additions and 4 deletions

View File

@ -1,10 +1,11 @@
# $OpenBSD: Makefile,v 1.15 2013/03/11 11:20:27 espie Exp $
# $OpenBSD: Makefile,v 1.16 2014/01/08 11:54:12 sthen Exp $
ONLY_FOR_ARCHS= amd64 i386
COMMENT= Prolog compiler
DISTNAME= gprolog-1.3.1
REVISION= 0
CATEGORIES= lang
HOMEPAGE= http://www.gprolog.org/

View File

@ -1,5 +1,2 @@
MD5 (gprolog-1.3.1.tar.gz) = y64Zwx4XvPyktX/jXsSrog==
RMD160 (gprolog-1.3.1.tar.gz) = +UL4LkA0pZ/QvFJ2VChyN119yAE=
SHA1 (gprolog-1.3.1.tar.gz) = 0pEoR3JaDZF8aTfJQCvMIQcrGnM=
SHA256 (gprolog-1.3.1.tar.gz) = PDMVm50jRkegbniHDBSgUY1qKl+F25BjYHd/6z2YwxY=
SIZE (gprolog-1.3.1.tar.gz) = 2949369

View File

@ -0,0 +1,26 @@
$OpenBSD: patch-EnginePl_machine_h,v 1.1 2014/01/08 11:54:12 sthen Exp $
XXX not quite sure why this is needed as it's built without PIE anyway, but
this fixes a segfault on i386 during build following the switch to PIE by
default.
===
gplc -c --fast-math fd2c.pl
Fatal Error: Segmentation Violation
compilation failed
*** Error 1 in Fd2C (Makefile:10 'fd2c.o')
*** Error 1 in /tmp_ports/gprolog-1.3.1/gprolog-1.3.1/src (Makefile:47 'all')
===
--- EnginePl/machine.h.orig Wed Jan 8 04:11:21 2014
+++ EnginePl/machine.h Wed Jan 8 04:12:30 2014
@@ -110,7 +110,7 @@ void M_Check_Magic_Words(void); /* not compiled if not
# define M_USED_REGS {"$9", "$10", "$11", "$12", "$13", "$14", 0}
/* on M_ix86_darwin : %ebx is used by gcc for pic base */
-#elif defined(M_ix86) && !defined(_MSC_VER) && !defined(M_ix86_darwin)
+#elif defined(M_ix86) && !defined(_MSC_VER) && !defined(M_ix86_darwin) && !defined(__OpenBSD__)
#ifdef NO_USE_EBP
# define M_USED_REGS {"ebx", 0}