no longer link against the whole library, since they don't require much
from it, but just compile the few small modules they actually need static.
This should save a measurable amount of space; compare:
-r-xr-xr-x 1 bin bin 155648 Sep 18 18:00 cc1*
-r-xr-xr-x 1 root bin 1048576 Sep 18 17:33 cc1.noshae*
Of course, the library takes up a bit of space, but when you add in the
savings from the C++ compiler, you more than make up the difference:
-r--r--r-- 1 bin bin 1157344 Sep 18 18:27 /usr/lib/libcc_int.so.26.0
-r-xr-xr-x 1 bin bin 491520 Sep 18 18:27 /usr/libexec/cc1plus*
completely when ldconfig unlinks it. If init is shared, then the
referenced unlinked copy of the hints file created by running
ldconfig in /etc/rc caused the file system to be unclean after
every reboot.
You need to fix the libio/_G_config.h file around lines 42-44. After
that everything should be OK. You should have seen many warning error
messages about this file. There are missing "short" "char" keywords
the file.
Michael:
Apply the following patch
rgrimes:
The patch to include/_G_config.h is highly questionable and has been
marked as such.
Reviewed by: rgrimes
Submitted by: L Jonas Olsson <ljo@ljo-slip.DIALIN.CWRU.Edu>
Submitted by: Michael Reifenberger <root@rz-wb.fh-sw.de>
we're not ready for yet. gcc and all profiled libraries will need
to be recompiled. I suspect that the dependencies aren't complete
enough to do this automatically.
automagically. -lfoo has to be right to work, but ${LIBFO0} is too
easy to forget or misspell; nothing checks it and it should be
different for shared libraries.
Several files in uucp/libunix included <sys/dir.h> and defined dirent
as direct, but <sys/dir.h> defines direct as dirent. This macro
recursion is not allowed by cpp in traditional mode. The 2.0 mkdep
uses cpp in traditional mode (another bug) so cpp prints a error
message and exits with a nonzero status. The error status leaks out
of the pipe (another bug) so mkdep "succeeds". It may even succeed.
being created and config.h depended on Makefile.inc being in the wrong
directory so real dependencies were not being checked. The "depend"
target was not created either so "make depend" always found work to do.
Subject: man returns 1
In 1.1.5.1, man returns a status of 1 if the lookup succeeds and 0 if
it fails. Here is a patch for what I believe is a simple oversight:
Submitted by: jkh
FreeBSD system sources installs itself as the standard cc and c++. I've
fixed c++ to call cc instead of gcc and removed all the symlinks
that get created to g** version of the binaries. This means that
you can install a second version of gcc that does use the g prefix
alongside the "system" version of gcc. The only conflict is libgcc
but since we install it as libcc.so.26 and nothing else is likely
to that should be ok.
Reviewed by:
Submitted by:
saying that 4.4 uses f_size in statfs, yet we're using b_size. Anyway,
I've configured things to match our current environment.
Reviewed by:
Submitted by:
moved to the logical name.
libg++-2.6.patch:
FOO_MAX in limits.h isn't in hex under 2.0 (for the time being ??)
libg++-2.6.tcl:
it works on my 1.1.5.1 system. I cannot test it here until gcc-2.6.0
is installed.
gnu2bmake.tcl:
enhanced various ways.
README:
says "don't hack the bmaked sources"
gcc-2.6.0.tcl:
added the gen-* and md files to the bmaked sources. Not used by
makefiles. Do I need to add other files Garrett ?
I know that I said earlier that this should be unconditional behaviour,
but I thought about it a little more and concluded that the principle of least
surprise dictates that I make it an option.
handling of errors through the standard err() and warn()
more fixes for Geoff Rehmet's NULL pointer bug.
fixes NULL pointer bugs when linking mono and nested X servers.
supports a `-nostdlib' option.
accept object files without a symbol table
don't attempt dynamic linking when `-A' is given
a few variable names have chaged (desc -> fd), and the formatting has
changed which should make it much easier to track his sources.
I tested 'make world' for /usr/src and X twice with these changes.
Paul Kranenburg's description:
ld is in error here, assuming that symbols with N_EXT set always have an
entry in the (global) symbol table: this is not the case for C++ generated
constructor/destructor symbols. I can reproduce your failure by fudging
a "multiply defined" constructor symbol by hand. Checking for `g == NULL'
seems to be a ok as a fence for now.
So:
for now, in do_file_warnings() we check if g == NULL, before trying to generate
any warning messages. This prevents a NULL pointer dereference.
called with -K-Keoptions -Kioptions. This should fix the problem with
$Id$ still getting changed.
I am also install both ncvs and ocvs on freefall with this change as
ocvs still had the bug with -I \! which I fixed but did not reinstall.
This is a greatly pared down version of the full gdb-4.12, all the
config stuff has been removed and the supporting libraries have
been stripped to a minimum. This is a 1.1.5 only port, I'll do a
more complete port for 2.0 which will have all the config stuff
and will install the gnu support libraries as system libraries like
we do for readline.
There wasn't much point for 1.1.5 since only gdb would use them so I
went for saving space instead. For 2.0 I'll config all the
other gnu tools to use them as well.
The following two patches should allow the documented "-I !" option to
skip the ignore lists and import/update all files in the directory.
I need it to force certain files to import (ie, csh.a which is part of
the csh documentation).
NOT touched by cvs. Only takes effect if -DFREEBSD_DEVELOPER, and installs
as ncvs when this is defined. You must also have the changes to rcs
for this to work.
Really we don't need copy of this library into each program
(gdb f.e.)
P.S. it is much cleaner port than /usr/ports version and based
on /usr/ports version. /usr/ports version will be removed.
Message-Id: <199404171501.LAA01245@stark.UUCP>
To: freebsd-hackers@freefall.cdrom.com
Subject: Make world and UUCP
Sender: freebsd-hackers-owner@freefall.cdrom.com
Precedence: bulk
It would be much more convenient if "make world" didn't clobber my
UUCP configuration files in /etc/uucp. Perhaps the easiest fix would
be to change the names of the sample configuration files:
config -> config.sample
ports -> ports.sample
...
Message-Id: <199404241154.OAA00260@tigger.cirion.fi>
Subject: uucp error
Index: gun/libexec/uucp FreeBSD-1.1-GAMMA
Apparently-To: FreeBSD-bugfiler@freefall.cdrom.com
Sender: freebsd-bugs-owner@freefall.cdrom.com
Precedence: bulk
Description:
When calling remote uucp site dialing succeeds, but standard
login chat fails. Debug file shows that uucico does not see
any characters send from remote.
Repeat-By:
use sio drivers, 16450 base serial and standard taylor configuration
provided with the GAMMA release. Run uucico and observer.
Fix:
define HAVE_BSD_TTY instead of HAVE_POSIX_TTY in common_source/policy.h
and recompile.
to public. These functions are also used in /usr/include/link.h,
so it looks, like they shouldn't be private.
I will ask Paul about that, if this is correct.
now, DO_COMPRESS. This controls whether or not catpages are compressed or
not (on by default, since little else uses the catpages and those few things
that do can always configure in a `zmore' in place of more or something, and
saving space is more important, IMHO).
Uncompression support is now on by default since that's the only way to support
mixed-mode environments. If you don't like it, just don't compress your man
pages and it won't be used! :-). Supports gzip. You can also compress
the man pages themselves (or gzip them) now and it will work.
late stage due to the fact that link.h was copyright Sun Microsystems.
This version of ld sync's us up with NetBSD's ld and supports compatablily
with NetBSD's -[zZ] flags (which we had reversed). Compiling with this
new ld will give you RRS warnings for libraries which do not contain .type
infomation - these wsarnings are harmless and will go away as soon as you
recompile your libraries (cd /usr/src; make libraries).
Message-Id: <199402111717.SAA05326@strider.st.dsi.unimi.it>
Subject: Re: cpio bug ?
Quoting from J Wunsch:
> | From the man page:
> |
> | -l, --link
> | Link files instead of copying them, when possible.
>
> (Usable only with the -p option.)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This is not in cpio man page. Someone please add it.
patch file had absolute pathnames in it and went and patched /usr/src directly
(first time this has happened, I'll watch for it now), so I thought I might
as well just commit it and clean up the .orig files and whatnot left behind.
Sorry - this is the first time this has happened to me. Very confusing.
These files aren't really necessary to us, but should be kept in sync anyway.
patch file had absolute pathnames in it and went and patched /usr/src directly
(first time this has happened, I'll watch for it now), so I thought I might
as well just commit it and clean up the .orig files and whatnot left behind.
Sorry - this is the first time this has happened to me. Very confusing.
You write that
LDFLAGS+= -Xlinker -Bstatic
no more needed, but you have
CFLAGS += -static -I$(.CURDIR) -I$(.CURDIR)/$(MACHINE)
This -static doesn't make any sense in your version,
because it not passed to linker's state (LDFLAGS),
so we have SHARED /usr/bin/ld in this case.
(Older Makefile produce non-shared ld).
I suppose, that -static in CFLAGS was introduced to
make non-shared ld, so I restore previous LDFLAGS
to have non-shared ld. If we want to have shared ld
we need to remove -static from CFLAGS too, not only LDFLAGS,
but this need special issue and corresponding
commit log. Your current version hang into intermediate
state (beetween two sides), so I move it to one side.
Second, I restore NOPIC dependance again from older Makefile:
.if !defined(NOPIC)
SUBDIR+= rtld
.endif
We don't need ld.so, if NOPIC
P.S. I don't see any purpose to commit new makefile, old version
is better.
commented out in #ifdef DEBUG
As Paul told me, it is only informational, nothing more.
I don't want several screens of this information
on each linking (netstat f.e.)
On any other system -z means "standard" ZMAGIC format and is the
default. Therefore I've made -z be standard ZMAGIC and -Z be ZMAGIC
stored in the new a_midmag format.
The "standard" ZMAGIC format is now the default as well.
lib.c:
Pull in archives containing definitions needed by shared objects.
warnings.c:
Less spurious "undefined symbol" msgs for shared library defined
symbols.
ld.c:
Do a better job of recognising data in text segments, eg. `const char []'.
shlib.c,ld/rtld/{Makefile rtld.c}
Use strsep() in stead of strtok() and restore colons in eg. env. vars.