From nobody@FreeBSD.ORG Wed Aug 18 07:46:35 1999
Return-Path: <nobody@FreeBSD.ORG>
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 10C5314D9B; Wed, 18 Aug 1999 07:46:35 -0700 (PDT)
Message-Id: <19990818144635.10C5314D9B@hub.freebsd.org>
Date: Wed, 18 Aug 1999 07:46:35 -0700 (PDT)
From: imura@cs.titech.ac.jp
Sender: nobody@FreeBSD.ORG
To: freebsd-gnats-submit@freebsd.org
Subject: bug of gcc-2.95? (-D__FreeBSD__=3=4)
X-Send-Pr-Version: www-1.0

>Number:         13224
>Category:       ports
>Synopsis:       bug of gcc-2.95? (-D__FreeBSD__=3=4)
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    obrien
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Aug 18 07:50:03 PDT 1999
>Closed-Date:    Wed Aug 18 15:51:29 PDT 1999
>Last-Modified:  Wed Aug 18 16:11:55 PDT 1999
>Originator:     Ryuichiro Imura
>Release:        FreeBSD 3.2-RELEASE i386
>Organization:
>Environment:
FreeBSD 3.2-RELEASE #16: Fri Jul 30 06:39:30 JST 1999
    root@snowwhite.rychi.com:/usr/src/sys/compile/KP6BS
>Description:
If a code have "__FreeBSD__" compile fails, because
$(LOCALBASE)/lib/gcc-lib/i386-portbld-freebsd3.2/2.95/specs says
"-D__FreeBSD__=3=4" which comes from $(WRKSRC)/gcc/specs, I'm not sure.
This may be $(WRKSRC)/gcc/stage1/specs or $(WRKSRC)/gcc/stage2/specs.
>How-To-Repeat:
Compile a code which have "__FreeBSD__".
>Fix:
Following patches may solve the problem.

--- gcc/specs.orig      Wed Aug 18 23:33:34 1999
+++ gcc/specs   Wed Aug 18 23:34:22 1999
@@ -35,7 +35,7 @@
 %{funsigned-char:-D__CHAR_UNSIGNED__}
 
 *predefines:
--Di386 -Acpu(i386) -Amachine(i386) -Dunix -D__FreeBSD__=3=4 -Asystem(unix) -Asystem(FreeB
SD) 
+-Di386 -Acpu(i386) -Amachine(i386) -Dunix -D__FreeBSD__=3 -Asystem(unix) -Asystem(FreeBSD
) 
 
 *cross_compile:
 0
--- gcc/stage1/specs.orig       Wed Aug 18 23:33:43 1999
+++ gcc/stage1/specs    Wed Aug 18 23:34:12 1999
@@ -35,7 +35,7 @@
 %{funsigned-char:-D__CHAR_UNSIGNED__}
 
 *predefines:
--Di386 -Acpu(i386) -Amachine(i386) -Dunix -D__FreeBSD__=3=4 -Asystem(unix) -Asystem(FreeB
SD) 
+-Di386 -Acpu(i386) -Amachine(i386) -Dunix -D__FreeBSD__=3 -Asystem(unix) -Asystem(FreeBSD
) 
 
 *cross_compile:
 0
--- gcc/stage2/specs.orig       Wed Aug 18 23:33:49 1999
+++ gcc/stage2/specs    Wed Aug 18 23:33:58 1999
@@ -35,7 +35,7 @@
 %{funsigned-char:-D__CHAR_UNSIGNED__}
 
 *predefines:
--Di386 -Acpu(i386) -Amachine(i386) -Dunix -D__FreeBSD__=3=4 -Asystem(unix) -Asystem(FreeB
SD) 
+-Di386 -Acpu(i386) -Amachine(i386) -Dunix -D__FreeBSD__=3 -Asystem(unix) -Asystem(FreeBSD
) 
 
 *cross_compile:
 0


>Release-Note:
>Audit-Trail:

From: Motoyuki Konno <motoyuki@snipe.rim.or.jp>
To: imura@cs.titech.ac.jp
Cc: freebsd-gnats-submit@freebsd.org
Subject: Re: ports/13224: bug of gcc-2.95? (-D__FreeBSD__=3=4) 
Date: Thu, 19 Aug 1999 00:20:45 +0900

 Hi,
 
 imura@cs.titech.ac.jp wrote:
 > If a code have "__FreeBSD__" compile fails, because
 > $(LOCALBASE)/lib/gcc-lib/i386-portbld-freebsd3.2/2.95/specs says
 > "-D__FreeBSD__=3=4" which comes from $(WRKSRC)/gcc/specs, I'm not sure.
 > This may be $(WRKSRC)/gcc/stage1/specs or $(WRKSRC)/gcc/stage2/specs.
 > >How-To-Repeat:
 > Compile a code which have "__FreeBSD__".
 > >Fix:
 > Following patches may solve the problem.
 
 I think the problem caused by the followings.
 
 In the file ports/lang/egcs/files/freebsd.h, 
 --------
 #define CPP_FBSD_PREDEFINES " -Dunix -D__FreeBSD__=4 -Asystem(unix) -Asystem(FreeBSD) "
 --------
 
 In the file ports/lang/egcs/Makefile
 --------
 pre-configure:
         @(MAJ=`sysctl -n kern.osreldate | ${SED} -e '/.....$$/s///'` ; \
         ${SED} -e "s:__FreeBSD__:__FreeBSD__=$${MAJ}:" ${FILESDIR}/freebsd.h \
                 >${WRKSRC}/gcc/config/freebsd.h )
 --------
 
 
 So, apply following patches to solve this problem.
 ==========
 --- ports/lang/egcs/files/freebsd.h.old       Mon Aug 16 10:42:29 1999
 +++ ports/lang/egcs/files/freebsd.h   Thu Aug 19 00:19:48 1999
 @@ -55,7 +55,7 @@
  
  /* Place spaces around this string.  We depend on string splicing to produce
     the final CPP_PREDEFINES value.  */
 -#define CPP_FBSD_PREDEFINES " -Dunix -D__FreeBSD__=4 -Asystem(unix) -Asystem(FreeBSD) "
 +#define CPP_FBSD_PREDEFINES " -Dunix -D__FreeBSD__ -Asystem(unix) -Asystem(FreeBSD) "
  
  /* Provide a LIB_SPEC appropriate for FreeBSD.  Just select the appropriate
     libc, depending on whether we're doing profiling or need threads support.
 ==========
 
 --
 ------------------------------------------------------------------------
 Motoyuki Konno                  mkonno@res.yamanashi-med.ac.jp   (Univ)
                                 motoyuki@snipe.rim.or.jp         (Home)
                                 motoyuki@FreeBSD.ORG  (FreeBSD Project)
 Yamanashi Medical University    http://www.freebsd.org/~motoyuki/ (WWW)
 
Responsible-Changed-From-To: freebsd-ports->obrien  
Responsible-Changed-By: cpiazza 
Responsible-Changed-When: Wed Aug 18 12:08:24 PDT 1999 
Responsible-Changed-Why:  
Over to maintainer 
State-Changed-From-To: open->closed 
State-Changed-By: obrien 
State-Changed-When: Wed Aug 18 15:51:29 PDT 1999 
State-Changed-Why:  
problem fixed 
>Unformatted:
