On Fri, 24 Apr 2020 13:59:14 +0100
Stuart Henderson <[email protected]> wrote:

> > > > /usr/obj/ports/clisp-2.49/clisp-2.49/src/spvw.d:2881:47: error: use of 
> > > > undeclared identifier 'MAP_ANON'
> > > >   
> > > > mmap((void*)0xC0000000,0x20000000,PROT_NONE,MAP_ANON|MAP_PRIVATE|MAP_FIXED,-1,0);
> > > >                                               ^
> > > > /usr/obj/ports/clisp-2.49/clisp-2.49/src/unix.d:65:22: note: expanded 
> > > > from macro 'MAP_ANON'
> > > >     #define MAP_ANON MAP_ANONYMOUS
> > > >                      ^
> > > > /usr/include/sys/mman.h:60:23: note: expanded from macro 'MAP_ANONYMOUS'
> > > > #define MAP_ANONYMOUS   MAP_ANON        /* alternate POSIX spelling */

> Noticable difference between working and failed builds is this:
> 
> -checking for working shared memory... no
> +checking for working shared memory... yes

Some of these tests map memory at fixed addresses, and may yield a
random 'no' from conflict with ASLR.  configure would say,
"working mmap... yes", if at least 1 of MAP_ANON, MAP_ANONYMOUS,
/dev/zero are working.  If the random result was MAP_ANON 'no' and
MAP_ANONYMOUS 'yes', then you might get the above error.

This diff overrides the tests.  OK to commit?

Index: Makefile
===================================================================
RCS file: /cvs/ports/lang/clisp/Makefile,v
retrieving revision 1.53
diff -u -p -r1.53 Makefile
--- Makefile    6 Apr 2020 01:25:18 -0000       1.53
+++ Makefile    29 Apr 2020 02:41:25 -0000
@@ -5,7 +5,7 @@ ONLY_FOR_ARCHS =        amd64 i386 powerpc spar
 COMMENT =              ANSI Common Lisp implementation
 
 DISTNAME=              clisp-2.49
-REVISION =             4
+REVISION =             5
 CATEGORIES=            lang
 HOMEPAGE=              http://clisp.cons.org/
 
@@ -36,9 +36,17 @@ CONFIGURE_ARGS=              --fsstnd=openbsd \
                        --srcdir=${WRKSRC} ${WRKBUILD} \
                        --without-dynamic-modules
 
+# Override some mmap, shm tests: their fixed addresses may conflict
+# with ASLR, and a random 'no' might break the build.
 CONFIGURE_ENV =                ac_cv_prog_DVIPDF='' \
                        ac_cv_prog_GROFF='' \
-                       ac_cv_prog_PS2PDF=''
+                       ac_cv_prog_PS2PDF='' \
+                       cl_cv_func_mmap_anon=yes \
+                       cl_cv_func_mmap_anonymous=yes \
+                       cl_cv_func_mmap_devzero=yes \
+                       cl_cv_func_mmap_works=yes \
+                       cl_cv_func_shmctl_attachable=yes \
+                       cl_cv_sys_shm_works=yes
 
 .if ${MACHINE_ARCH} == "sparc64"
 CFLAGS +=              -DSAFETY=2 -DNO_ASM

Reply via email to