Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 8 Jun 2002 11:29:26 +0200
From:      Stefan Esser <se@freebsd.org>
To:        Kris Kennaway <kris@obsecurity.org>
Cc:        Yamada Ken Takeshi <ken@tydfam.jp>, freebsd-current@FreeBSD.ORG, Stefan Esser <se@freebsd.org>
Subject:   Re: Re: GCC3.1 internal compiler error when compiling XFree86-4-libraries
Message-ID:  <20020608092926.GA2635@StefanEsser.FreeBSD.org>
In-Reply-To: <20020608013938.B5755@xor.obsecurity.org>
References:  <20020608.171312.730576735.ken@tydfam.jp> <20020608013938.B5755@xor.obsecurity.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2002-06-08 01:39 -0700, Kris Kennaway <kris@obsecurity.org> wrote:
> On Sat, Jun 08, 2002 at 05:13:12PM +0900, Yamada Ken Takeshi wrote:
> >   I have the following error when I try to install it.
> > Is it unique only to me?
> 
> I didn't get that when I built it on ref5.  That's the only place I've
> tried it.

I got around this problem by (indirectly) fixing the ".c.o" rule
in the Imakefile. This patch was part of my previous mail to you
regarding the XFree86 library build process (new version of patch-z32).

The problem is that "unshared" is meant to be a prefix to a file name,
but $@ happens to be a path name including directory components. E.g.

	$@ = <dir>/<file.o>	=>	unshared/<dir>/<file.o>

The correct path is			<dir>/unshared/<file.o>

and the modified definition of LibObjCompile uses that filename:

File:	/usr/ports/x11/XFree86-4-libraries/files/patch-z32

--- lib/GL/mesa/src/OSmesa/Imakefile.orig	Tue Apr  3 11:29:33 2001
+++ lib/GL/mesa/src/OSmesa/Imakefile	Wed Jun  5 12:28:26 2002
@@ -8,6 +8,16 @@
 #define DoDebugLib DebugLibGlx
 #define DoProfileLib ProfileLibGlx
 
+#define LibObjCompile(dir,options) RemoveFiles($@ $(@:C!([^/]+)$!dir/\1!))	@@\
+	ClearmakeOSName \
+	$(CC) -c $(CCOPTIONS) $(THREADS_CFLAGS) $(ALLDEFINES) \
+	options $*.c -o $(@:C!([^/]+)$!dir/\1!)
+
+#define ObjectCompile(options) RemoveFile($@)                           @@\
+	ClearmakeOSName \
+	$(CC) -c $(CFLAGS) options -O0 $*.c -o $@
+
+
 #include "../Imakefile.inc"
 #ifdef i386Architecture
 #include "../X86/Imakefile.inc"
@@ -58,7 +68,7 @@
 LIBNAME = OSMesa
 SOREV = 3.3
 
-
+#if !defined(LibInstall) || LibInstall || (!defined(ModInstall) || ModInstall)
 #if DoNormalLib
 NormalLibraryTarget($(LIBNAME), $(UOBJS))
 InstallLibrary($(LIBNAME),$(USRLIBDIR))
@@ -77,6 +87,7 @@
 #if DoProfileLib
 ProfiledLibraryTarget($(LIBNAME), $(POBJS))
 InstallLibrary($(LIBNAME)_p,$(USRLIBDIR))
+#endif
 #endif
 
 DependTarget()


(The redefinition of ObjectCompile() disables optimization because it
triggers an internal bug in gcc-3.1 in the case of the PCI object.)

Regards, STefan

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




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