| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
Notes:
svn path=/head/; revision=36494
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Move a.out libraries to /usr/lib/aout to make space for ELF libs.
Make rtld usr /usr/lib/aout as default library path.
Make ldconfig reject /usr/lib as an a.out library path.
Fix various Makefiles for LIBDIR!=/usr/lib breakage.
This will after a make world & reboot give a system that no
longer uses /usr/lib/*, infact one could remove all the old
libraries there, they are not used anymore.
We are getting close to an ELF make world, but I'll let this
all settle for a week or two...
Notes:
svn path=/head/; revision=36397
|
| |
|
|
|
|
|
| |
as the result of i386 changes.
Notes:
svn path=/head/; revision=35664
|
| |
|
|
|
|
|
|
| |
/etc/make.conf. The tools can't handle generating debug code where
we fiddle with the ELF segments.
Notes:
svn path=/head/; revision=34977
|
| |
|
|
|
|
|
|
|
|
|
| |
Add a bootstrap mode so that non-rtld versions of these objects can
be built when bootstrapping the system with NetBSD tools, headers
and libraries. Once the FreeBSD tools are built, the FreeBSD headers
are installed and *then* these objects can be recompiled with the
rtld references. Phew.
Notes:
svn path=/head/; revision=34487
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
asm code didn't link the way it was supposed to and the calling convention
for the entry "function" turned out to be very different. On alpha
it's a true function, but on i386 it's a fudge. Blech.
So jdp suggested keeping separate sets of source and avoiding lots
of #ifdefs. These files are based on his i386-elf code, with crt1.c
borrowing code from NetBSD's crt0. The copyright reflects that.
Complicating matters, the code turned out to be difficult to bootstrap
build using NetBSD tools. To compile against the FreeBSD rtld header
requires FreeBSD specific headers, but these can't be installed until
the tools are built, and they can't be built without the FreeBSD crt
objects. Anal retentive. So I introduced a HAVE_RTLD #define that isn't
set during the build process until all the tools are built and the
headers installed.
Notes:
svn path=/cvs2svn/branches/jb/; revision=34484
|
| |
|
|
|
|
|
|
|
|
|
|
| |
now that has been committed.
The makefile is derived from the i386-elf version, modified to pick
up most of the source (except crt1.c) from i386-elf. With minor changes
to i386-elf/crt1.c, this directory can be combined with i386-elf to
be a single csu/elf directory for all seasons.
Notes:
svn path=/head/; revision=34454
|
| |
|
|
|
|
|
|
|
|
| |
the rtld code pending implementation on the alpha.
The csu/i386-elf should be renamed as csu/elf and this directory
trashed. Consider this a temporary implementation.
Notes:
svn path=/cvs2svn/branches/jb/; revision=34452
|
| |
|
|
|
|
|
| |
Submitted by: John Polstra <jdp@polstra.com>
Notes:
svn path=/cvs2svn/branches/JDP/; revision=34198
|
| |
|
|
|
|
|
|
|
|
| |
that the dl* trampolines have been moved into libc.
Move dlfcn.h from src/lib/csu/i386 into src/include. Nothing in
src/lib/csu/i386 uses it any more.
Notes:
svn path=/head/; revision=33236
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
into libc. This reduces the size of every dynamically linked
executable by 248 bytes, and it reduces the size of static executables
by a lesser amount. It also eliminates some global namespace
pollution.
With this change in place, the source for dlfcn.h should probably
be moved to "/usr/src/include". I'll save that for another day.
Compatibility note: Programs which use dlopen, if compiled on
systems with this change, will not run on systems with a libc from
prior to this change. Very few programs use dlopen, so I think
that is OK.
Notes:
svn path=/head/; revision=33180
|
| |
|
|
| |
Notes:
svn path=/head/; revision=33137
|
| |
|
|
|
|
|
| |
Tiny pointed hat goes to: Our Makefile-meister.
Notes:
svn path=/head/; revision=32484
|
| |
|
|
|
|
|
| |
more work when we get a half-way usable libc (which is next).
Notes:
svn path=/head/; revision=32417
|
| |
|
|
| |
Notes:
svn path=/head/; revision=31342
|
| |
|
|
|
|
|
|
|
| |
a.out foo".)
Reviewed by: bde (actually more like "Suggested by")
Notes:
svn path=/head/; revision=30291
|
| |
|
|
| |
Notes:
svn path=/head/; revision=29988
|
| |
|
|
| |
Notes:
svn path=/head/; revision=27838
|
| |
|
|
|
|
|
|
| |
be up-to-date when we are building.
Submitted by: Terry Lambert <terry@lambert.org>
Notes:
svn path=/head/; revision=25296
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
common. Add one do-nothing element to each set. This ensures that
the linker realizes that they are linker sets rather than simple
commons, and makes it possible to link c++rt0.o into every shared
library regardless of whether it is a C++ library or not. Without
this change, the constructors and destructors in the main program
could be executed multiple times.
This change is going to make it possible to get rid of the
CPLUSPLUSLIB makefile variable once and for all. It is a piece of
the solution to PR gnu/3505 (gcc -shared). Finally, it fixes a
heretofore unreported bug: If CPLUSPLUSLIB was set in a makefile
for a C++ shared library that had no static constructors or
destructors in it, then the main program's constructors and
destructors would be executed multiple times.
Notes:
svn path=/head/; revision=24756
|
| |
|
|
| |
Notes:
svn path=/head/; revision=24553
|
| |
|
|
| |
Notes:
svn path=/head/; revision=24488
|
| |
|
|
| |
Notes:
svn path=/head/; revision=22993
|
| |
|
|
|
|
|
|
|
|
|
| |
This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.
Boy, I'm glad we're not using sup anymore. This update would have been
insane otherwise.
Notes:
svn path=/head/; revision=21673
|
| |
|
|
|
|
|
|
|
|
| |
Add descriptions of RTLD_LAZY and RTLD_NOW.
Correct the synopsis to agree with the actual function prototypes.
Add clarifications of a few things.
Clean up the wording in a few places.
Notes:
svn path=/head/; revision=21619
|
| |
|
|
| |
Notes:
svn path=/head/; revision=21616
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
was apparently overlooked at the time the member was added. Its absence
causes some error messages from the dynamic linker to begin with
"(null):" instead of with the pathname of the dynamic linker as they
should.
I am also adding a work-around to the dynamic linker, to cope with
legacy binaries that were built with older versions of crt0.
Notes:
svn path=/head/; revision=21571
|
| |
|
|
|
|
|
|
| |
should be installed using the same flag as libraries, but ${COPY}
is currently used for libraries.
Notes:
svn path=/head/; revision=21158
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
just return errors. This removes the need for awful hacks like that in
our build of libtcl which would get link errors when linked static.
John Polstra once mentioned that this was on his "todo" list.
Note that one can use:
cc -Wl,-Bstatic -o foo foo.o
and get an executable that has it's libraries statically linked, but has
a fully functional runtime linker so the executable can call dlopen() and
have it work. (I've tested this)
Notes:
svn path=/head/; revision=20975
|
| |
|
|
|
|
|
|
|
| |
it and link.h prototypes it
Error of my ways pointed out by Peter
Notes:
svn path=/head/; revision=18802
|
| |
|
|
|
|
|
| |
will compile without error.
Notes:
svn path=/head/; revision=18735
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
and forwards compatable with version 3. This is needed to enable storing
a run-time library path in the dynamic linking headers. The crt startup
tries version 4 first, and falls back to version 3, so an executable that
is linked on -current will work with the ld.so on 2.1.x and less.
Reviewed by: nate, jdp
Obtained from: NetBSD
Notes:
svn path=/head/; revision=18593
|
| |
|
|
| |
Notes:
svn path=/head/; revision=17927
|
| |
|
|
|
|
|
|
| |
``rm'' -> ``rm -f''
so mv/rm may not ask for confirmation if you are not root
Notes:
svn path=/head/; revision=15679
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to 2. This makes them agree with the declarations in libgcc, and
clears the way once again for linking c++rt0.o into all libraries,
and eliminating CPLUSPLUSLIB from <bsd.lib.mk>. (I have not made
that change yet, because there is still a bootstrapping problem
for "make world".)
Also, removed a check which ensured that the constructor count in
the first word of __CTOR_LIST__ was greater than zero before
traversing the list. I had added that check earlier, but it is no
longer necessary, now that there is guaranteed to be at least 2
words in __CTOR_LIST__.
Notes:
svn path=/head/; revision=14161
|
| |
|
|
|
|
|
|
|
| |
from -stable, until a better solution is found.
Submitted by: Consensus of mailing list and the almighty Jordan :)
Notes:
svn path=/head/; revision=13727
|
| |
|
|
|
|
|
|
|
| |
Submitted by: John Birrel(L?)
changes for threadsafe operations
Notes:
svn path=/head/; revision=13545
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the loop that invokes the static constructors. That makes it safe
to link c++rt0.o into any shared library, even one that does not
have any static constructors. Formerly, doing that would cause a
bus error. If the library has no static constructors, __CTOR_LIST__
comes out as a simple 4-byte COMMON region, and it does not have
the usual NULL word that terminates the list of constructors. This
caused the old code to "call" a garbage address via the non-existent
entry __CTOR_LIST__[1].
The analogous code that invokes the static destructors was already safe.
This change is fully backward-compatible.
Reviewed by: dfr@render.com (Doug Rabson)
Notes:
svn path=/head/; revision=13441
|
| |
|
|
|
|
|
| |
which included commits to RCS files with non-trunk default branches.
Notes:
svn path=/head/; revision=13123
|
| |
|
|
| |
Notes:
svn path=/cvs2svn/branches/ATT/; revision=13122
|
| |
|
|
| |
Notes:
svn path=/head/; revision=12009
|
| |
|
|
| |
Notes:
svn path=/head/; revision=11912
|
| |
|
|
|
|
|
|
|
| |
Build a static gcrt0.o (sgcrt0.o) too. Currently only the dynamic gcrt0.o
is used, although -pg forces -static.
Sorted the .o targets.
Notes:
svn path=/head/; revision=11676
|
| |
|
|
|
|
|
|
| |
so before somebody screws up royally, make sure this always works by
adding a -fno-omit-frame-pointer here.
Notes:
svn path=/head/; revision=11592
|
| |
|
|
|
|
|
| |
they are used. Saves a few bytes here and there, nothing major.
Notes:
svn path=/head/; revision=11562
|
| |
|
|
|
|
|
| |
This will be used for -static programs.
Notes:
svn path=/head/; revision=11556
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
symbols.
An easy example to see this is to develop an X program which links
against Xt, but doesn't add -lX11 to the link line. It will link fine,
but cause run-time errors by ld.so because of missing symbols used by Xt
defined in X11. This patch makes the errors more readable.
Submitted by: jdp@polstra.com (John Polstra)
Notes:
svn path=/head/; revision=11039
|
| |
|
|
| |
Notes:
svn path=/head/; revision=9971
|
| |
|
|
|
|
|
|
|
|
| |
specified in the top level Makefiles.
Previously I missed dozens of Makefiles that skip the install after
using `cmp -s' to decide that the install isn't necessary.
Notes:
svn path=/head/; revision=9970
|
| |
|
|
|
|
|
|
|
|
|
| |
1) Do dependencies.
2) Install all appropriate links to manual pages.
3) Install header file in `beforeinstall' like all the rest.
4) Install header file only if changed.
5) Install object files only if changed.
Notes:
svn path=/head/; revision=9378
|