Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 30 Dec 2012 18:07:08 +0100 (CET)
From:      Klaus Aehlig <aehlig@linta.de>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/174837: lang/intercal semantic incorrect compiler, when built with gcc 4.2.1
Message-ID:  <20121230170708.23DF856441@hilbert.linta.de>
Resent-Message-ID: <201212301740.qBUHe0Vs010455@freefall.freebsd.org>

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

>Number:         174837
>Category:       ports
>Synopsis:       lang/intercal semantic incorrect compiler, when built with gcc 4.2.1
>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 Dec 30 17:40:00 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator:     Klaus Aehlig
>Release:        FreeBSD 8.3-STABLE amd64
>Organization:
>Environment:
System: FreeBSD hilbert.linta.de 8.3-STABLE FreeBSD 8.3-STABLE #10 r243473: Sun Nov 25 06:27:11 CET 2012 root@hilbert.linta.de:/usr/obj/usr/src/sys/HILBERT amd64

>Description:
        If build with gcc 4.2.1 (i.e., the base cc on stable/8), ick
        produces compile errors when trying to use the system libraries.
>How-To-Repeat:
	Build lang/intercal on stable/8 (where the base compiler is gcc 4.2.1).
        Try to compile the attached program with 'ick -b add.i'. You get
        the compiler error

ICL997I ILLEGAL POSSESSION OF A CONTROLLED UNARY OPERATOR.
        ON THE WAY TO 27
        CORRECT SOURCE AND RESUBNIT

        instead of the expected addition program. This happens with
        other system library calls as well. If lang/intercal is built with gcc46
        everything works as expected. I have not tried which other C compilers
        do or do not work.
>Fix:
	Enforce building with a specific version of gcc, i.e., by
        applying the following patch (intercal.diff).

--- intercal.diff begins here ---
diff -ruN intercal.orig/Makefile intercal/Makefile
--- intercal.orig/Makefile	2012-12-30 17:44:48.000000000 +0100
+++ intercal/Makefile	2012-12-30 17:45:04.000000000 +0100
@@ -15,6 +15,7 @@
 
 GNU_CONFIGURE=	yes
 USE_GMAKE=	yes
+USE_GCC=	4.6
 CFLAGS+=	-D_POSIX_SOURCE
 DATADIR=	${PREFIX}/share/ick
 
--- intercal.diff ends here ---

--- add.i begins here ---
PLEASE DO WRITE IN .1
       DO WRITE IN .2
       DO READ OUT .1
       DO READ OUT .2
       DO (1009) NEXT
PLEASE DO READ OUT .3
       DO GIVE UP
--- add.i ends here ---


>Release-Note:
>Audit-Trail:
>Unformatted:



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