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!