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.
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.
Subject: man pages for diff et al.
I finally got tired of not having man pages for diff and friends, so I
edited the appropriate sections of the texinfo manual into man format.
to output the same QMAGIC format as BSDI does. This is triggered by
a new '-q' flag ('-Xlinker -q' in gcc). The default can be changed from
ZMAGIC to QMAGIC by defining DEFAULT_MAGIC=QMAGIC when building ld.
Date: Fri, 24 Sep 1993 10:19:20 -0700
Fixed bug that was reported (with patch) on gnu.utils.bug.
Immediate operands of the pushw instruction were being output as 32
bits, rather than the 16 bits they were supposed to be.
ld won't generate output if there are two .o files with the same
name. It thinks they are multiply defined external references. This
patch explictly allows multiple /file names/ with the same value.
This can happen if you do a two stage link or if you link in file
names that are identical to files in libc.
Otherwise ld.c exits with a status=1 and non error message. Rich