Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 15 Oct 2005 17:08:18 +0300
From:      Vasil Dimov <vd@datamax.bg>
To:        FreeBSD-gnats-submit@FreeBSD.org
Cc:        nobutaka@FreeBSD.org
Subject:   ports/87484: [patch] devel/boehm-gc does not compile on amd64 with THREADING
Message-ID:  <20051015140818.GA50410@qlovarnika.bg.datamax>
Resent-Message-ID: <200510151410.j9FEAFLx014906@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         87484
>Category:       ports
>Synopsis:       [patch] devel/boehm-gc does not compile on amd64 with THREADING
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sat Oct 15 14:10:15 GMT 2005
>Closed-Date:
>Last-Modified:
>Originator:     Vasil Dimov
>Release:        FreeBSD 6.0-RC1 amd64
>Organization:
DataMax
>Environment:

System: FreeBSD qlovarnika.bg.datamax 6.0-RC1 FreeBSD 6.0-RC1 #0: Mon Oct 10 17:41:04 EEST 2005     root@qlovarnika.bg.datamax:/usr/obj/usr/src/sys/QLOVARNIKA  amd64

>Description:

devel/boehm-gc fails to compile on amd64 when option THREADING is
defined.

Included patch just adds the missing macros. I have not tested it
in other means than: 1. it compiles ok; 2. make check does not
emit errors.

I indulged in adding a check target to aid with testing, fixing the
innocent configure warning and changing HAS_CONFIGURE to GNU_CONFIGURE,
because it is GNU configure we actually have.

>How-To-Repeat:

# uname -m
amd64

/usr/ports/devel/boehm-gc# make clean rmconfig
/usr/ports/devel/boehm-gc# make  (turn on THREADING)
...
cc -DPACKAGE_NAME=\"gc\" -DPACKAGE_TARNAME=\"gc\" -DPACKAGE_VERSION=\"6.6\" "-DPACKAGE_STRING=\"gc 6.6\"" -DPACKAGE_BUGREPORT=\"Hans.Boehm@hp.com\" -DGC_VERSION_MAJOR=6 -DGC_VERSION_MINOR=6 -DPACKAGE=\"gc\" -DVERSION=\"6.6\" -DGC_FREEBSD_THREADS=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DSILENT=1 -DNO_SIGNALS=1 -DNO_EXECUTE_PERMISSION=1 -DALL_INTERIOR_POINTERS=1 -DJAVA_FINALIZATION=1 -DGC_GCJ_SUPPORT=1 -DATOMIC_UNCOLLECTABLE=1 -I./include -pthread -fexceptions -pipe -g -march=athlon64 -fexceptions -MT pthread_support.lo -MD -MP -MF .deps/pthread_support.Tpo -c pthread_support.c  -fPIC -DPIC -o .libs/pthread_support.lo
pthread_support.c: In function `GC_pthread_sigmask':
pthread_support.c:965: error: `SIGRTMIN' undeclared (first use in this function)
pthread_support.c:965: error: (Each undeclared identifier is reported only once
pthread_support.c:965: error: for each function it appears in.)
*** Error code 1

Stop in /usr/ports/devel/boehm-gc/work/gc6.6.
*** Error code 1

Stop in /usr/ports/devel/boehm-gc/work/gc6.6.
*** Error code 1

Stop in /usr/ports/devel/boehm-gc.

>Fix:

--- boehm-gc_threads-amd64.diff begins here ---
Index: Makefile
===================================================================
RCS file: /home/ncvs/ports/devel/boehm-gc/Makefile,v
retrieving revision 1.45
diff -u -r1.45 Makefile
--- Makefile	10 Oct 2005 13:06:07 -0000	1.45
+++ Makefile	15 Oct 2005 13:55:43 -0000
@@ -7,6 +7,7 @@
 
 PORTNAME=	boehm-gc
 PORTVERSION=	6.6
+PORTREVISION=	1
 CATEGORIES=	devel
 MASTER_SITES=	http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/
 DISTNAME=	gc${PORTVERSION:S/.a/alpha/}
@@ -17,7 +18,8 @@
 USE_INC_LIBTOOL_VER=	13
 USE_GNOME=	lthack
 USE_REINPLACE=	yes
-HAS_CONFIGURE=	yes
+GNU_CONFIGURE=	yes
+CONFIGURE_TARGET=	--build=${MACHINE_ARCH}-portbld-freebsd${OSREL}
 INSTALLS_SHLIB=	yes
 CONFIGURE_ARGS=	--prefix=${PREFIX} --enable-cplusplus
 OPTIONS=	REDIRECT "Define malloc(3)-family replacements" off \
@@ -65,4 +67,7 @@
 post-install:
 	${INSTALL_MAN} ${WRKSRC}/doc/gc.man ${PREFIX}/man/man3/gc.3
 
+check: build
+	@(cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} check)
+
 .include <bsd.port.post.mk>
Index: files/patch-include-private-gcconfig.h
===================================================================
RCS file: /home/ncvs/ports/devel/boehm-gc/files/patch-include-private-gcconfig.h,v
retrieving revision 1.6
diff -u -r1.6 patch-include-private-gcconfig.h
--- files/patch-include-private-gcconfig.h	29 Jun 2005 16:29:45 -0000	1.6
+++ files/patch-include-private-gcconfig.h	15 Oct 2005 13:55:43 -0000
@@ -1,5 +1,5 @@
---- include/private/gcconfig.h.orig	Sat May 21 05:48:29 2005
-+++ include/private/gcconfig.h	Thu Jun 30 01:10:10 2005
+--- include/private/gcconfig.h.rorig	Sat Oct 15 16:40:25 2005
++++ include/private/gcconfig.h	Sat Oct 15 16:42:43 2005
 @@ -62,7 +62,7 @@
  /* Determine the machine type: */
  # if defined(__arm__) || defined(__thumb__)
@@ -9,7 +9,7 @@
  #      define NOSYS
  #      define mach_type_known
  #    endif
-@@ -330,10 +330,22 @@
+@@ -334,10 +334,22 @@
  #    define X86_64
  #    define mach_type_known
  # endif
@@ -33,7 +33,7 @@
  # if defined(bsdi) && (defined(i386) || defined(__i386__))
  #    define I386
  #    define BSDI
-@@ -822,6 +834,16 @@
+@@ -845,6 +857,16 @@
  #     define DATASTART GC_data_start
  #     define DYNAMIC_LOADING
  #   endif
@@ -50,7 +50,7 @@
  #   ifdef NOSYS
  #     define ALIGNMENT 4
  #     define OS_TYPE "NOSYS"
-@@ -1782,6 +1804,17 @@
+@@ -1807,6 +1829,17 @@
  #	endif
  #       define USE_GENERIC_PUSH_REGS
  #   endif
@@ -67,8 +67,8 @@
 +		   
  #   ifdef LINUX
  #       define OS_TYPE "LINUX"
- #       define HEURISTIC1
-@@ -1932,6 +1965,15 @@
+ #       define LINUX_STACKBOTTOM
+@@ -1957,6 +1990,17 @@
  #	ifdef __ELF__
  #	    define DYNAMIC_LOADING
  #	endif
@@ -78,6 +78,8 @@
 +#   endif
 +#   ifdef FREEBSD
 +#       define OS_TYPE "FREEBSD"
++#       define SIG_SUSPEND SIGUSR1
++#       define SIG_THR_RESTART SIGUSR2
 +#       ifdef __ELF__
 +#           define DYNAMIC_LOADING
 +#       endif
--- boehm-gc_threads-amd64.diff ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20051015140818.GA50410>