gas for i386 targeted to NT for those (like me) who have to do work
targeted to NT, but can't stand actually looking at it all day long.
I cross build apps on FreeBSD and just run them on NT later. Life is
better that way.
Allow for the case where the host architecture might also be listed
in CROSS_ARCH, so don't do things twice. This situation can arise if you
want NT support in binutils (CROSS_ARCH=i386 CROSS_FORMAT=winnt).
When I imported EGCS into contrib/egcs/ I failed to prune out
egcs/gcc/cp/hash.h which is generated from gxx.gperf. Thus `cc1plus' wasn't
using the hash.h we generated by cc/cc_tools/Makefile, but rather the one in
egcs/gcc/cp/.
When I imported contrib/gcc/ I did prune gcc/cp/hash.h. Unfortunately the
GCC maintainers weren't smart on their file nameing and there is also a
egcs/gcc/hash.h (name overloading does NOT work as well on the filesystem
as in C++...). Due to the -I ordering we are were then picking up gcc/hash.h
when compiling `cc1plus'.
${LIB} was wrong at dependency-parsing time, so dependencies for
libgcc_r*.a were wrong. This somehow worked right, except libgcc_r*.a
were always out of date.
-----------------------------
Most of the userland changes are in libc. For both the alpha
and the i386 setjmp has been changed to accomodate for the
new sigset_t. Internally, libc is mostly rewritten to use the
new syscalls. The exception is in compat-43/sigcompat.c
The POSIX thread library has also been rewritten to use the
new sigset_t. Except, that it currently only handles NSIG
signals instead of the maximum _SIG_MAXSIG. This should not
be a problem because current applications don't use any
signals higher than NSIG.
There are version bumps for the following libraries:
libdialog
libreadline
libc
libc_r
libedit
libftpio
libss
These libraries either a) have one of the modified structures
visible in the interface, or b) use sigset_t internally and
may cause breakage if new binaries are used against libraries
that don't have the sigset_t change. This not an immediate
issue, but will be as soon as applications start using the
new range to its fullest.
NOTE: libncurses already had an version bump and has not been
given one now.
NOTE: doscmd is a real casualty and has been disconnected for
the moment. Reconnection will eventually happen after
doscmd has been fixed. I'm aware that being the last one
to touch it, I'm automaticly promoted to being maintainer.
According to good taste this means that I will receive a
badge which either will be glued or mechanically stapled,
drilled or otherwise violently forced onto me :-)
NOTE: pcvt/vttest cannot be compiled with -traditional. The
change cause sys/types to be included along the way which
contains the const and volatile modifiers. I don't consider
this a solution, but more a workaround.
except an absence of the directory is not considered an error
and doesn't produce a warning).
Put /usr/local/lib/perl5/*/man under OPTIONAL_MANPATH.
- An order of directives in manpath.config is now irrelevant.
- Get rid of infinite loop when PATH is unset or NULL, and
MANDATORY_MANPATH directory doesn't exist.
- mdoc(9)ify manpage.
Reviewed by: des, markm, sheldonh
Configuration header inclusion has been moved around to reduce diffs from
the offical GCC distribution. We now generate the same ``tm.h'' produced by
gcc's `configure' script [minus all the "#ifdef IN_GCC"'s].
Jeff Law of EGCS/Cygus says the new "approved" way of doing configure-related
includes is to list them all in ``tm.h'' rather than having the architure
config headers include large numbers of other configure headers.
- Sort xrefs
- Be consistent with section names as outlined in mdoc(7).
- Other misc mdoc cleanup.
PR: doc/13144
Submitted by: Alexey M. Zelkin <phantom@cris.net>
representation by generating the same format as tar-1.13 (use a single
space as the terminator for 7-digit octal numbers). This is POSIX.1
conformant (2-byte terminators are just a bug or historical wart in
old versions of gnu tar). All devices created by `MAKEDEV all' except
rsa0.ctl can now be handled by tar(1).
was installed in /usr/bin normally got clobbered when objformat
was installed. Indirection through objformat is correct although
underscore handling is the only thing that differs for aout and
elf -- going through objformat is the easiest way to set c++filt's
underscore handling flag correctly.
broke nroff because it added the '-S' option to the troff call, which
requires that the tmac.safer macro package be installed.
Since 90% of our *roff calls are probably generated by man(1), and
man(1) calls groff directly, I'm not really sure what rev 1.5 of nroff.sh
was trying to fix, but at least now nroff works again.
Broken by: imp
Add $Id$
Removes temp file exploits in gzexe (predictable filenames)
Fixes some typos
Fixes a buffer overrun in gzip -S
Don't prepend /usr/local/bin to path in scripts
Correct location of /usr/share/misc/termcap
Obtained from: OpenBSD
* Update build for gdbserver and gdbreplay to work under binutils
* Fix gdbserver to use PT_GETREGS etc to access registers, removing the
dependancy on the u-area.
* Make gdbserver work on the alpha.
Add an emply MAIN__() function. This avoid an unresolved reference error
during link phase when using fortran subroutines with non-fortran 'main()'.
Obtained from: src/lib/libF77/MAIN.c rev 1.1 by jmz
aren't needed as those files aren't part of libstdc++ any longer. Another
isn't needed as Cygnus doesn't compile with -frtti.
Noticed by: bde & my initial mispelling of ".So".
zero when building for little endian machines.
Correct the target names for mips. We just use the generic targets
for mips elf, so the mipse[lb]-unknown-freebsd emulation types don't
exist.
name of the bfd target, not the gnu-standard target name. Corrected
to be elf32-{big,little}mips from mipse[bl]-unknown-freebsd.
DEFAULT_EMULATION was bogusly defined, causing ld to always fail (this
was masked by the TARGET bogosity). Define correctly as elf32bmip and
elf32lmip. Mips doesn't follow the same conventions as i386 and alpha
do in this area.
ld now appears to work correctly for the uncommitted mips changes to
egcs.
code still applies, but the code attached to it had rotted:
# ../Makefile.inc will put an absolute path to our objdir in CFLAGS.
# Prevent mkdep from using it, so that we don't have to give rules for
# aliases of generated headers.
Many other makefiles seem to have the same bug (i.e., spelling "." as
"${.OBJDIR}" or as an even more complicated alias in -I directives).
The previous commit made things worse by breaking the -j0 case and
moving around the breakage for the -jN case. The fix involves
restoring .ORDER statements that were deleted in the previous commit,
removing wrong special handling of tree-check.h, and rewriting the
generation of fudged dependencies based on an idea I got from the
previous commit (filter out problematic objects first).
I knew better... too dependant on the environment we generate in, but...
This fixes the
/usr/lib/libstdc++.so: undefined reference to `filebuf virtual table'
/usr/lib/libstdc++.so: undefined reference to `stdiobuf virtual table'
errors seen after the initial bootstrap from gcc 2.7.2 to EGCS.
Agreed with by: bde & jdp
/usr/include/sys. Specifically we need /usr/include/machine
since "syslog.h" includes "machine/ansi.h". To be safe we
translate all of /usr/include/* and /usr/include/*/*.
sample error case:
echo "require 'syslog.ph';" | /usr/bin/perl
will fail when syslog.ph tries to include machine/ansi.ph
Submitted by: Doug Ambrisko
everyone (to prevent fake-postings) and modern Inn installs
rnews as news.uucp and mode 4550 this is the only save way to allow
uuxqt to process rnews batches.
Unlike the unisex architecutres we've had so far, mips is bisexual.
These tools can produce either byte sex, and the compiler/make
determines the proper gender to use. Otherwise, we'd have to have had
mipsel and mipseb in all the places that we have just mips. And there
are other complications with doing that (binutils doesn't like to
build mips tools without both byte genders, it seems).
Introduced BINUTIL_ARCH so that other bisexual architectures can a
generic mechanism.
We cannot just define MACHINE_ARCH as mips because we need to
differentiate big and little endian types of binaries. Discussions on
freebsd-arch have hashed out this issue (and the parallel libc
issues). NetBSD is moving towards mipsel and mipseb for their two
flavors of mips ports (in time for 1.4, if this change hasn't already
been accomplished).
I've been building i386 worlds with this tree for a three months with
these files in place with no ill effects.
obj dir is only indirectly related to the location of libtxi.a's obj
dir).
Fixed about 3 style bugs in previous commit.
Fixed my bug in rev.1.7. "../../Makefile.inc" worked as an alias for
"../Makefile.inc" in some cases, but it gives endless recursion when
there is an obj dir in one of the subdirs.
version of makeinfo must be used. The fix breaks bootstrapping of
texinfo by a simple `make' in the texinfo directory -- `make world'
must be used to bootstrap it if you don't know how to do it manually.
Fixed at least 7 style bugs in previous commit.
than ".so". The old extension conflicted with well-established
naming conventions for dynamically loadable modules.
The "clean" targets continue to remove ".so" files too, to deal with
old systems.
o make install ; make install now works
o make all ; make all is quiet the second time
o Dependancies are properliy debugged; this means that make -jN has a
far hihjer likelyhood of working.
o a proper 'link farm' has been constructed for the build. This
dramatically simplifies the dependancy tangle.
o for perldoc's use, all the .pod files are installed.
o the man3 docs are properly compressed.
o the man pages and libary code are installed by the makefiles, not
by a perl script.
o at the end, h2ph is run.
shared versions should not need to add -lm unless the program uses libm
itself. Strictly speaking, libg++ depends on libstdc++, but libstdc++
has dynamic dependencies on some exception tables and binutils doesn't
seem to like it when a secondary library has undefined references. It
doesn't seem to care when -lstdc++ is added on the command line to ld
though. Anyway, the c++ driver adds -lstdc++ explicitly, so that should
be OK. c++ also adds -lm explicitly too, even though it wouldn't need
to now. [except for statically linked binaries as .a files don't have an
equivalent of automatic internal shared object dependencies.]
are installed in the same place as on 2.2.*; this will almost
certainly change in the future.
While I'm here, finish off the shared library brouhaha with miniperl.
shamefully dropped on the floor. I need to add it now since it does a
minor number bump, but otherwise the current functionality of libdialog
is unchanged (in all its evil glory) and the change is non-intrusive.
Submitted by: "Anatoly A. Orehovsky" <tolik@mpeks.tomsk.su>
1) Part of the NOSHARED fix; I messed this up and managed to get
perl installed without being linked to the shared library libperl.so.
This broke Perl in ELF when linking in shared objects.
2) Start of a cleanup of the man3 page location. This will (eventually)
allow for a the ports to put their pages in the "normal" ${PREFIX}-
based location.
3) Nuke cruft.
1) Inspired by JB's finding of a hardcoded /usr/bin/ranlib in the
config files, these have been properly cleaned up and have
been personalised for FreeBSD, not MarkM.
2) Inspired by Peter, copying of the lib/ext etc dirs has been
replaced by a link farm.
3) Common code has been moved to a higher-level Makefile.inc.
This has been tested with a make -j8.
Remove the /usr/bin path to ranlib and just let the build environment
set the path. Running an aout version of ranlib on an elf library
is something we'd prefer not to do. I'm surprised that the build
didn't spit any errors when it did this. Shrug.
1) Fix up the NOSHARED stuff (bde)
2) Accomodate CFLAGS (vanilla)
3) Provide separate files for i386 and alpha (Doug Rabson)
In case 3, the supplied files were corrupted, but the concepts
sound enough, so I just copied what exists into
config.SH-{elf|aout}.{i386|alpha}. Alpha team, go ahead and do what
is necessary on config.SH-elf.alpha. :-)
(Tested by make -j12 buildworld on a 4-cpu SMP box).
Address (but not solve) ELF shareable objects causing perl to
dump core. (I have a heck of a lot to learn about ELF).
Lots of help by: bde, jkh, jb and others
before it is installed.
This upsets Bruce because the host boostrap build forces tools to be
static anyway. He says I'm abusing NOTOOLS in src/Makefile by using
it to do a aout->elf transition build. One day I'll find a place to
install host tools like these to allow a true cross build.
can be used to select them. The purpose of this is not necessarily to
allow another host format, but to allow us to use the objformat trickery
for cross compilation.
a system header defines a macro __printf0like() using the new printf0
format attribute. uucp's internal ulog() function isn't actually
printf-like but uucp normally declares it as such.
tar now exits with new exit code EX_BADDIR after a failed chdir()
in name_next(), name_match(), and name_from_list().
PR: bin/2394
Submitted by: Satoshi Asami <asami@freebsd.org>
name of entry points, functions, subroutines, and program to
stderr error. The enclosed patches do 3 things:
(1) Silenced the output to stderr.
(2) Added a -v option to f2c and f77. This will turn on a verbose
mode, and dumps quite a bit of stuff to stderr.
(3) Updated the f2c man page.
PR: 7369
Submitted by: Steven G. Kargl <kargl@troutmask.apl.washington.edu>
`-C' can be used both when creating and extracting files. Further,
a `-C' inside the argument list causes a `chdir()' to the named
directory before the subsequent filename arguments to be interpreted.
Eg:- "tar -cf a+b.tar -C /a . -C /b ."
PR: 7221
`XCC= <relative cc> -B<path to relative cc1> ...'. This is equivalent
when cc and cc1, etc. have just been bootstrapped by `make world'.
The relative versions normally won't work if the target system is
not binary compatible. Bootstrapping different versions of gcc
without going through `make world' is slightly more broken than
before.
Uniformized macro names (P1OBJS -> LIB1POBJS, etc.).
Don't give full paths to sources.
They have been bootstrapped by `make world' since long before the
hacks here were cloned from ../libgcc/Makefile. The versions just
built in "../*" normally won't work if the target system is not binary
compatible.
Don't use OBJS to defeat `make depend'; just put generated sources in
SRCS.
Added temporary files to CLEANFILES.
bootstrapped by `make world'. The version just built in ".."
normally won't work if the target system is not binary compatible.
The bootstrapped version has a better chance of working.
This makes the fixes and bugs in the previous 3 commits irrelevant.
Rev.1.11 was just wrong and rev.1.10 became unnecessary when
perl/perl was added to build-tools. Don't expect to build perl/usub
without using `make world' or equivalent if you don't have perl
installed.
was already put in SRCS by the general yacc rules. Putting ldemul-list.h
in SRCS fixes races in `make -jN' when .depend hasn't been made.
Don't forget to clean ldemul-list.h.
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...
Move our old a.out utils to /usr/libexec/aout.
Enable binutils and put the utils in /usr/libexec/elf
Enable objformat, a little helper program that calls the right
utils based on /etc/objformat and $OBJFORMAT.
This will enable the ELF generating tools.
Remember that this is only step one, the system is still compiled
and run in a.out format ONLY.
Problem left to solve: The BSD manpages wins over the GNU equivalents
as the are installed last. We need to distinguish between the manpages
somehow...
CURDIR it has been built without an obj directory; however if it is in
neither of those places, we expect it to be in DESTDIR.
Yes Bruce, I know this is broken because the host is not supposed to be
the same as the target, but we need to get the hosted build working
properly first before even attempting a cross compiled operating
system build. That will need to concept of TOOLSDIR or something that
can be mapped to DESTDIR in the case of a hosted build and set to the
installed tools in a cross compiled build. Later, later, later!
perl executable from overriding the object directory path search where
perl is most likely to be. Most people haven't seen this because it
defaulted to /usr/bin/perl which might be OK as a fallback, but when
bootstrapping a new version (or the *first* version on alpha), we don't
really want to use /usr/bin/perl.
kernel's) curproc is null. This fixes endless recursion in
xfer_umem() for attempts to read from user addresses, in particular
for attempts to read %fs and %gs from the pcb for `info reg'.
gas for each target format. So for m68k targets that means several
gases. I wanted a m68k gas for VxWorks which uses aout in sun3 big
endian format, cross compiled on i386 under FreeBSD using libraries
supplied by DEC and intended by them for cross compilation on Alpha
under OSF/1. And it actually works!