Skip site navigation (1)Skip section navigation (2)
Date:      Sun,  5 Aug 2007 08:48:22 -0400 (EDT)
From:      Douglas Wells <sysmaint@contek.com>
To:        FreeBSD-gnats-submit@FreeBSD.org
Cc:        sysmaint@contek.com
Subject:   ports/115216: ADA florist exit_process program doesn't compile due to internal error
Message-ID:  <20070805124822.4505F39864@mail.contek.com>
Resent-Message-ID: <200708051410.l75EA17M023578@freefall.freebsd.org>

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

>Number:         115216
>Category:       ports
>Synopsis:       ADA florist exit_process program doesn't compile due to internal error
>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:   Sun Aug 05 14:10:00 GMT 2007
>Closed-Date:
>Last-Modified:
>Originator:     Douglas Wells
>Release:        FreeBSD 6.2-RELEASE-p1 i386
>Organization:
>Environment:
System: FreeBSD flame.contek.com 6.2-RELEASE-p1 FreeBSD 6.2-RELEASE-p1 #0: Sun Feb 11 18:14:07 EST 2007 root@flame.contek.com:/other5/src.6.2/sys/i386/compile/FLAME.6.2 i386

	GNAT: gnat-3.15p_1 / gnat-gcc-3.4.6_3
	florist: florist-3.15p_1
		(tools installed via ports compilation)

>Description:
	A simple Ada program using devel/florist to access POSIX
	process primitives encounters the error:

		px_true.adb:2:06: file "posix-implementation-ok_signals.ads" not found
		px_true.adb:2:06: "px_true (body)" depends on "posix.process_primitives (spec)"
		px_true.adb:2:06: "posix.process_primitives (spec)" depends on "posix.signals (spec)"
		px_true.adb:2:06: "posix.signals (spec)" depends on "posix.implementation.ok_signals (spec)"
		gnatmake: "px_true.adb" compilation error

	Note that posix-implementation-ok_signals.ads is internal
	to florist.

>How-To-Repeat:
	Use the command:
		gnatmake -I/usr/local/lib/florist px_true.adb
	with this test program:
	------------------------- px_true.adb ------------------------
	with POSIX.Process_Primitives;
	procedure px_true is
		package PPP renames POSIX.Process_Primitives;
	begin
		PPP.Exit_Process (0);
	end px_true;
	----------------------- end px_true.adb ----------------------
>Fix:
	The problem arises because the configuration process has somehow
	become confused about the use of threads.  If, after running
	"make configure", the Makefile is altered so that the line (~26):
		SIGNALS_GENERATED =
	is changed to:
		SIGNALS_GENERATED = posix-implementation-ok_signals.ads
	the resulting system properly creates and installs the
	file posix-implementation-ok_signals.ads, but this results in
	a system with errors due to duplicate signal values.  This problem,
	in turn, seems to arise because several BSD signals are only
	defined in XSI mode or if a later version of POSIX is assumed.

	If pconfig.h is then changed to include:
		#define #define __XSI_VISIBLE   1
	near the top, the resulting system properly compiles and
	executes this program and several others with the command:
		gnatmake -I/usr/local/lib/florist -gnato px_true.adb \
		  -L/usr/local/lib -largs -lflorist && ./px_true 

	Note that there is clearly an underlying problem in the
	configuration mechanism that this workaround does not
	address.

	Also note that if the compilation is changed to include the
	"-gnato" flag, execution of the program results in the error:
		raised CONSTRAINT_ERROR : posix-signals.adb:1167 overflow check failed
	which is also some form of internal error for which I have
	not determined a workaround.
>Release-Note:
>Audit-Trail:
>Unformatted:



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