Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 12 Aug 2004 23:11:38 +0300
From:      Ruslan Ermilov <ru@freebsd.org>
To:        "Conrad J. Sabatier" <conrads@cox.net>
Cc:        freebsd-current@freebsd.org
Subject:    Re: builworld fails if debugging enabled in usr.sbin/pkg_install/lib
Message-ID:  <20040812201138.GA79664@ip.net.ua>
In-Reply-To: <XFMail.20040812145823.conrads@cox.net>
References:  <20040812195252.GA79364@ip.net.ua> <XFMail.20040812145823.conrads@cox.net>

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

--BXVAT5kNtrzKuDFl
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Thu, Aug 12, 2004 at 02:58:23PM -0500, Conrad J. Sabatier wrote:
>=20
> On 12-Aug-2004 Ruslan Ermilov wrote:
> > On Thu, Aug 12, 2004 at 02:41:37PM -0500, Conrad J. Sabatier wrote:
> >> To help in debugging a problem with news/pan2, I decided to try
> >> rebuilding the port and all of its dependencies with debugging
> >> enabled.
> >> Then I decided to go ahead and do the same with the base system.=20
> >> The
> >> buildworld with "-g" worked fine with one exception:
> >>=20
> >> cc -O2 -pipe -march=3Dathlon64 -m64 -g  1 -Wsystem-headers -Wall
> >> -Wno-format-y2k -W -Wstrict-prototypes -Wmissing-prototypes
> >> -Wpointer-arith -Wno-uninitialized -Wformat=3D2 -Wno-format-extra-args
> >> -c
> >> /usr/src/usr.sbin/pkg_install/lib/file.c
> >> cc: 1: No such file or directory
> >> *** Error code 1
> >>=20
> >> Stop in /usr/src/usr.sbin/pkg_install/lib.
> >>=20
> >> I can't figure out where this "1" just after the "-g" switch is
> >> coming
> >> from.  Without "-g", the compile works OK:
> >>=20
> >> cc -O2 -pipe -march=3Dathlon64 -m64   -Wsystem-headers -Wall
> >> -Wno-format-y2k -W -Wstrict-prototypes -Wmissing-prototypes
> >> -Wpointer-arith -Wno-uninitialized -Wformat=3D2 -Wno-format-extra-args
> >> -c
> >> /usr/src/usr.sbin/pkg_install/lib/file.c
> >>=20
> >> Strange.
> >>=20
> > How are you building your world with -g?
>=20
> I have the following in /etc/make.conf:
>=20
> .if defined(DEBUG)
> CFLAGS+=3D-g
> .endif
>=20
> And then use "make -DDEBUG buildworld".
>=20
I suspected something like this.  src/usr.sbin/pkg_install/*/Makefile's
added the contents of the DEBUG variable to CFLAGS.  By passing the
-DDEBUG to make(1), you effectively set the value of the DEBUG variable
to 1 (see the make(1) manpage), so "1" was added to CFLAGS.

I've "fixed" these makefiles to not add DEBUG to CFLAGS.  Note that the
name DEBUG is unsafe to use anyway.  Also, there's an alternative and
standard way to recompile your programs and libraries with -g: there's
the DEBUG_FLAGS variable, so you could as well do it like this:

	make buildworld DEBUG_FLAGS=3D-g

Passing DEBUG_FLAGS=3D-g to ``make installworld'' will also cause the
binaries to *not* be stripped when installing, which is essential
for having the debugger symbols in binaries.  Please consider switching
to this method of building world with debug infomation.


Cheers,
--=20
Ruslan Ermilov
ru@FreeBSD.org
FreeBSD committer

--BXVAT5kNtrzKuDFl
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (FreeBSD)

iD8DBQFBG876qRfpzJluFF4RAsrQAJ9iLuyTpwtUqsh9Fxla4QBkTY+3gACeKXuK
0ajVk3ztUCiT+FSw3W2XjGc=
=rqvP
-----END PGP SIGNATURE-----

--BXVAT5kNtrzKuDFl--



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