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>