From owner-freebsd-current Tue Jun 25 13: 5:39 2002 Delivered-To: freebsd-current@freebsd.org Received: from mx1.datanet.hu (mx1.datanet.hu [194.149.13.165]) by hub.freebsd.org (Postfix) with ESMTP id 94D7D37B4B1; Tue, 25 Jun 2002 13:02:02 -0700 (PDT) Received: from fonix.adamsfamily.xx (nilus-1557.adsl.datanet.hu [195.56.94.33]) by mx1.datanet.hu (DataNet) with ESMTP id A911C26A83F; Tue, 25 Jun 2002 22:02:00 +0200 (CEST) Received: from fonix.adamsfamily.xx (localhost [127.0.0.1]) by fonix.adamsfamily.xx (8.12.4/8.12.4) with ESMTP id g5PK23De001625; Tue, 25 Jun 2002 22:02:04 +0200 (CEST) (envelope-from sziszi@bsd.hu) Received: (from cc@localhost) by fonix.adamsfamily.xx (8.12.4/8.12.4/Submit) id g5PK23pw001624; Tue, 25 Jun 2002 22:02:03 +0200 (CEST) X-Authentication-Warning: fonix.adamsfamily.xx: cc set sender to sziszi@bsd.hu using -f Date: Tue, 25 Jun 2002 22:02:03 +0200 From: Szilveszter Adam To: current@FreeBSD.ORG Cc: sheldonh@FreeBSD.ORG Subject: Re: What's the right way to build XFree86-4 now? Message-ID: <20020625200203.GB1289@fonix.adamsfamily.xx> Mail-Followup-To: Szilveszter Adam , current@FreeBSD.ORG, sheldonh@freebsd.org References: <20020625072157.GA73056@starjuice.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20020625072157.GA73056@starjuice.net> User-Agent: Mutt/1.5.1i Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Hello Sheldon, On Tue, Jun 25, 2002 at 09:21:57AM +0200, Sheldon Hearn wrote: > Hi folks, > > Could someone put me out of my misery and show me "the right way" to > build XFree86-4 on -current at the moment. > > I've tried `make install' and `make CXX=/usr/local/bin/g++31 install', > where that g++31 comes from the lang/gcc31 port, and either way, > XFree86-4-clients fails with: <...> This must be glxinfo. This shows btw, that the make World was not successful, therefore the install fails. The problem here, as verified by my build logs, is that glxinfo (really, xc/programs/glxinfo) is built using gcc since it is C, but tries to link against -lGLU, which is C++. Specifying -lstdc++ explicitly on the link line works in this case. Changing the compiler was not trivial here, since the Imake framework generated Makefiles decide on which compiler to use based on the source file suffices, and since here it is .c, they use gcc for both building and linking. The quick way out I found is to hack the Makefile by hand and including the extra lib, but this both ugly and wrong. There is another problem, however, and this is that the libGLU built is parctically unusable anyway, although there the correct compiler is used (g++), one alway needs to link -lstdc++ with it for it to work. I do not know why this is. Other parts of X appear to work ok. As an aside, this is a rather interesting way of building, but both XFree and OpenMotif use it: the build does not stop at build failures so you only notice the problems upon install time when it tries to build the missing pieces again. THerefore, before installing, one should always grep the build logs for "all not remade because of errors". Also see xc/programs/Xserver/hw/xfree86/doc/BUILD. Also as an aside, the current way of building the X4 port with its slave port sucks royally. The libs are built no less than 3 times, and the whole shebang is untarred at least as many times, which means that 1 gig is not enough for building it! Let's face it, the X build is like ours: "make World" was not designed to be used sliced up like this. There should be one "full build" port for XFree-4 just like there is one for the old X, and the now slave ports should only be there for people who for some reason need them. Duplicated code in the Makefiles certainly does not justify this nightmare that a full build of XFree-4 from ports now is. At least that's my opinion. -- Regards: Szilveszter ADAM Szombathely Hungary To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message