Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 23 Apr 2005 02:20:23 GMT
From:      Giorgos Keramidas <keramida@freebsd.org>
To:        freebsd-bugs@FreeBSD.org
Subject:   Re: docs/80258: [PATCH] Comment why some Binaries are statically linked
Message-ID:  <200504230220.j3N2KNAY019568@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR bin/80258; it has been noted by GNATS.

From: Giorgos Keramidas <keramida@freebsd.org>
To: Marius Nuennerich <marius.nuennerich@gmx.net>
Cc: bug-followup@freebsd.org
Subject: Re: docs/80258: [PATCH] Comment why some Binaries are statically linked
Date: Sat, 23 Apr 2005 05:16:53 +0300

 On 2005-04-22 19:56, Marius  Nuennerich <marius.nuennerich@gmx.net> wrote:
 > Some Binaries are statically linked, add comments to the Makefile why this is so.
 
 > diff -ru src/gnu/usr.bin/binutils/ar/Makefile head/gnu/usr.bin/binutils/ar/Makefile
 > --- src/gnu/usr.bin/binutils/ar/Makefile	Thu Apr 21 16:29:47 2005
 > +++ head/gnu/usr.bin/binutils/ar/Makefile	Fri Apr 22 18:24:20 2005
 > @@ -10,7 +10,10 @@
 >  CFLAGS+= -I${.CURDIR}/${RELTOP}/libbinutils
 >  CFLAGS+= -I${SRCDIR}/binutils
 >  CFLAGS+= -I${SRCDIR}/bfd
 > +
 > +# Critical toolchain binaries are staticly linked
 >  NO_SHARED?= yes
 
 Sorry, but this is no explanation of "why".  It's merely a redundant
 comment that states the obvious.  A _REAL_ explanation would be
 something like (entirely fictitious text, used as example only):
 
 	# The dynamic linker may have to call ar(1), so it must be
 	# statically linked to avoid creating a circular dependency of
 	# ld-elf.so -> ar -> lf-elf.so
 	NO_SHARED?= yes
 
 The same is true for all the "Critical toolchain binaries" comments.
 
 > --- src/gnu/usr.bin/cc/cc1/Makefile	Thu Apr 21 16:29:55 2005
 > +++ head/gnu/usr.bin/cc/cc1/Makefile	Fri Apr 22 19:24:54 2005
 > @@ -8,6 +8,9 @@
 >  SRCS=	main.c c-parse+%DIKED.c c-lang.c stub-objc.c
 >  BINDIR=	/usr/libexec
 >  NO_MAN=
 > +
 > +# Build cc1 nonshared. This actually results in it consuming 40K *less* disk
 > +# space and improves compile times by a few percent.
 >  NO_SHARED?=yes
 
 If this comment is true, then it looks like a good thing to have :-)
 
 > diff -ru src/gnu/usr.bin/cc/cc1plus/Makefile head/gnu/usr.bin/cc/cc1plus/Makefile
 > --- src/gnu/usr.bin/cc/cc1plus/Makefile	Thu Apr 21 16:29:55 2005
 > +++ head/gnu/usr.bin/cc/cc1plus/Makefile	Fri Apr 22 19:31:54 2005
 > @@ -13,6 +13,8 @@
 >
 >  BINDIR=	/usr/libexec
 >  NO_MAN=
 > +
 > +# Makes it smaller and faster
 >  NO_SHARED?=yes
 
 s/it/cc1plus/ and this looks fine too :-)
 
 > diff -ru src/sbin/devd/Makefile head/sbin/devd/Makefile
 > --- src/sbin/devd/Makefile	Thu Apr 21 16:35:48 2005
 > +++ head/sbin/devd/Makefile	Fri Apr 22 18:22:22 2005
 > @@ -5,6 +5,11 @@
 >  MAN=	devd.8 devd.conf.5
 >  WARNS?=	1
 >
 > +# Force devd to be statically compiled. This avoids the
 > +# need for libstdc++ in /lib, and the generated binary is actually smaller
 > +# statically linked than dynamically + sizeof(libstdc++). Additionally,
 > +# devd doesn't use get*by*() which is one of the main motivations for
 > +# dynamically linking the root partition anyway.
 >  NO_SHARED?=YES
 
 The wrapping of text in this comment looks like it has been randomly
 chosen and there are a few glaring syntax errors.
 
 > diff -ru src/usr.sbin/pccard/Makefile.inc head/usr.sbin/pccard/Makefile.inc
 > --- src/usr.sbin/pccard/Makefile.inc	Thu Apr 21 16:42:21 2005
 > +++ head/usr.sbin/pccard/Makefile.inc	Fri Apr 22 18:31:57 2005
 > @@ -1,5 +1,7 @@
 >  # $FreeBSD: src/usr.sbin/pccard/Makefile.inc,v 1.9 2004/12/21 09:59:45 ru Exp $
 >
 > +# Must be compiled static so that it is possible
 > +# to use them early in the boot process.
 >  NO_SHARED?=	YES
 
 This is not a complete sentence, which is a violation of style(9).
 Something like this would probably look better:
 
 	# The PC-CARD tools may need to be used very early in the boot process.
 	NO_SHARED?= yes
 
 One last important comment is that all these changes, despite being in
 the comments of files, are *not* documentation problems.  Any changes
 made to the Makefiles need to be reviewed by at least one src committer.
 
 - Giorgos
 



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