I am committing this here rather than in gcc/config/freebsd.h because the
profiled libgcc only exists with the native system compiler. It is not
created by a stock FSF build and we will never be able to get these bits
committed to the FSF CVS repo. Thus this is very much a FreeBSD "native"
issue.
compiler.
* Undo the diking out of cross compiler logic from gcc.c rev 1.16.
* Add the `CROSS_STARTFILE_PREFIX' knob.
* Add our own definition of `STANDARD_INCLUDE_DIR'. This should have been
included in freebsd-native.h rev 1.5.
* Minimize a little bit more, things we dike out in the FREEBSD_NATIVE case.
Submitted by: ru & obrien
cross case, and just ends up causing "/usr/libexec" being added to the
library search path.
Also remove misleading comment about 'STANDARD_EXEC_PREFIX'. It is needed
if one does not set 'MD_EXEC_PREFIX'.
Submitted by: ru
- point at the FDP article rather than GNU's send-pr documentation
- warn the user that PRs are public information and will be published in
mailing lists and on the web
- suggest that the user contact security-officer@ directly if the report
concerns sensitive security issues.
This backs out (sort of) delta 1.18 to perl/miniperl/Makefile.
Update to the ld(1) comment by peter in this revision:
ld(1) built as part of the cross-tools stage of buildworld has
been fixed to look for dynamic dependencies in the right place,
${WORLDTMP}/usr/lib, effective binutils/ld/Makefile,v 1.20.
Approved by: markm
Presumably the issue was with arparse.[ch]. Those are now in FREEBSD-Xlist
and FREEBSD-deletelist. So we do not import the Bison produced files that
was causing the problem.
Submitted by: ru
(the two may be different (ie, build vs. runtime))
Allow ldscript's SEARCH_DIR do be rooted somewhere other than `/'.
(in this case at TOOLS_PREFIX)
These changes are most helpful during `make buildworld' so that the shared
libs built in the middle of `make buildworld' are used vs. the ones in
/usr/lib on the build machine.
Submitted by: ru
The code will be fixed for all known security vulnerabilities,
and a make.conf(5) knob (ENABLE_SUID_MAN) will be provided for
those who still want it installed setuid for whatever reasons.
The catpaging and setuidness features of man(1) combined make
it vulnerable to a number of security attacks. Specifically,
it was possible to overwrite system catpages with arbitrarily
contents by either setting up a symlink to a directory holding
system catpages, or by writing custom -mdoc or -man groff(1)
macro packages and setting up GROFF_TMAC_PATH in environment
to point to them. (See PR below for details).
This means man(1) can no longer create system catpages on a
regular user's behalf. (It is still able to if the user has
write permissions to the directory holding catpages, e.g.,
user's own manpages, or if the running user is ``root''.)
To create and install catpages during ``make world'', please
set MANBUILDCAT=YES in /etc/make.conf. To rebuild catpages
on a weekly basis, please set weekly_catman_enable="YES" in
/etc/periodic.conf.
PR: bin/32791
back (as of man.c,v 1.45), change the meaning of the -m option
from poorly documented and badly coded "alternate system" to a
much more useful "different architecture for the same system".
PR: docs/31261
bsd.obj.mk -> bsd.prog.mk in modules makefiles, as the
latter automatically includes ../Makefile.inc and adds
-I${DESTDIR}/usr/include to ${CFLAGS} needed for "make
world" which is built with -nostdinc.
Reviewed by: MAINTAINER timeout
code in ipl.s and icu_ipl.s that used them was removed when the
interrupt thread system was committed. Debuggers also knew about
Xresume* because these labels hide the real names of the interrupt
handlers (Xintr*), and debuggers need to special-case interrupt
handlers to get the interrupt frame.
Both gdb and ddb will now use the Xintr* and Xfastintr* symbols to
detect interrupt frames. Fast interrupt frames were never identified
correctly before, so this fixes the problem of the running stack
frame getting lost in a ddb or gdb trace generated from a fast
interrupt - e.g. when debugging a simple infinite loop in the kernel
using a serial console, the frame containing the loop would never
appear in a gdb or ddb trace.
Reviewed by: jhb, bde
1. To cross-build, one now needs to set TARGET_ARCH, and not the
MACHINE_ARCH. MACHINE_ARCH should never be changed manually!
2. Initialize DESTDIR= explicitly for bootstrap-tools, build-tools,
and cross-tools stages. This fixes broken header and library
dependencies problem. We build them in the host environment,
and obviously want them to depend on host headers and libraries.
The problem with broken header dependencies for bootstrap-tools
and cross-tools was already partially solved (see BOOTSTRAPPING
tests in bsd.prog.mk and bsd.lib.mk), but it was still there for
build-tools if the user ran "make world DESTDIR=/foo". Also,
for all of these stages, the library dependencies were broken
because of how bsd.libnames.mk define DPADD members.
We still provide a glue to install bootstrap- and cross-tools
under the ${WORLDTMP}.
Removed PATH overrides for bootstrap-, build-, and cross-tools
stages. There is just no reason why we would need to override
it, and the hacks to clean up the ${WORLDTMP} in the -DNOCLEAN
case are no longer needed with fixes from this step.
That is, we now never use ${WORLDTMP} headers and libraries,
and we don't use any ${WORLDTMP} installed binaries during
these stages. Again, these stages depend solely on the host
environment, including compiler, headers, and libraries.
3. Moved "miniperl" back from cross-tools (it has nothing to do
with a cross-compiler) to build-tools where it belongs. The
change from step 1 let to do this. Also, to make this work,
build-tools targets of "cc_tools" and "miniperl" were modified
to call "depend". Here follow the detailed explanations.
There are two categories of build tools, for now. In the first
category there are "cc_tools" and "miniperl". They occupy the
whole (sub)directory, and nothing needs to be done in this
subdirectory later during the "all" stage. They are also
constructed using system makefiles. We must build the .depend
early in the build-tools stage because:
1) They use (and depend on) the host environment.
2) If we don't do this in build-tools, the "depend" stage of
buildworld will do this for us; wrong library and header
dependencies will be recorded (DESTDIR=${WORLDTMP}) and,
what's worse, the "all" stage may then clobber the
build-architecture format tools (that we built in the
build-tools stage) with the target-architecture format
ones, breaking cross build.
In the second category there are all other build-tools. They
share their directory with the "main" module that needs them
in the "all" stage, and they don't show up themselves in the
.depend file. The portion of this fix was already committed
in gnu/usr.bin/cc/cc_tools/Makefile,v 1.52.
4. "libperl" is no longer a build tool, and "miniperl" is the
stand-alone application. I had to make this change because
build-tools and "all" stages share the same object directory.
Without this change, if we cross compile, libperl.a is first
built for the build architecture during the build-tools stage
(for the purposes of immediate linkage with "miniperl").
Later on, the "all" stage sees this library as up-to-date,
and doesn't rebuild it. The effect is that the wrong format
static libperl library is installed with installworld.
5. Fixed "includes" to install secure/lib/libtelnet headers if
required.
Reviewed by: bde
"build-tools". If we do not do this, the "depend" stage of
"buildworld" will build ``.depend'' and it will record the wrong
library and header dependencies (DESTDIR=${WORLDTMP}). Even worse,
the "all" stage may clobber build-architecture-format build tools
built in the "build-tools" stage with target-architecture-format ones.
Submitted by: ru
are linking against does not have basename(). There is a buffer overflow
bug in lib/libc/gen/basename.c rev 1.1. There is no way for us to test
what revision of basename() we have in libc, thus this change.
Requested by: ru
misuse of /usr/src/include headers. This REALLY fixes
the 20010919 src/UPDATING entry.
With this patch the 4.2-RELEASE box was able to survive
the 5.0-CURRENT "make world".
Beat over the head with this patch: obrien
The version of the kernel has no bearing on what is in libc.
We now search for basename in libc to determin if we need to include
the libiberty version in the build.
This is all still a bit bogus as it will (like the sysctl method) cause
basename.o to be linked into the cross-build as well as the host build. It
would probably be better to test if we were doing the initial host build and
unconditionally include that. Once we've generated the target libc we know
that basename is available. (maybe test for $TOOLS_PREFIX or something).
Submitted by: peter
Note ALL MODULES MUST BE RECOMPILED
make the kernel aware that there are smaller units of scheduling than the
process. (but only allow one thread per process at this time).
This is functionally equivalent to teh previousl -current except
that there is a thread associated with each process.
Sorry john! (your next MFC will be a doosie!)
Reviewed by: peter@freebsd.org, dillon@freebsd.org
X-MFC after: ha ha ha ha
paths are chflaged 'schg' to prevent exploit vectors when run
by cron, by a root user, or by a user other then the one owning the
binary. This applies to most of the uucp binaries, cu, tip, and
man (man was already installed properly).
MFC will occur when approved.
value, it forces GCC to not optimize above this level. For intance, GCC
made with "WANT_FORCE_OPTIMIZATION_DOWNGRADE=1" is a good setting for the
Alpha platform when building ports.
This makes the following difference:
-groff_mdoc(7), -(7) - groff_mdoc reference for groff's mdoc implementation
+groff_mdoc(7) - reference for groff's mdoc implementation
empty line by troff(1) and is ignored. Teach makewhatis(1)
about this. This makes the following difference:
-groff_man(7), . groff_man(7) - groff `man' macros to support generation of man pages
+groff_man(7) - groff `man' macros to support generation of man pages
-groff_mdoc(7), -(7) - . groff_mdoc reference for groff's mdoc implementation
+groff_mdoc(7), -(7) - groff_mdoc reference for groff's mdoc implementation
-troff(1), . . troff(1) - format documents
+troff(1) - format documents
Noticed by: yar
Avoid using parenthesis enclosure macros (.Pq and .Po/.Pc) with plain text.
Not only this slows down the mdoc(7) processing significantly, but it also
has an undesired (in this case) effect of disabling hyphenation within the
entire enclosed block.
the components and trigger actions based on its position. This reduces
the need to remember the functions of various keys, and makes the
interface more consistant across library.
~
reading old a.out core files, which are totally 100% non-understandable
to the gdb floating-point reader if you have SSE turned on.
This should be the last of the world build breakers...
blessed way of doing this:
cc -o interp interp.c `perl -MExtUtils::Embed -e ccopts -e ldopts`
In order for this to work, ldopts should contain -lcrypt.
PR: 21804
Reviewed by: markm
it from the Synopsis field. There's no reason for the subject to be
different, since all that does is cause confusion. Users may get
confused because they may think the subject and synopsis are supposed
to be different, and developers may get confused because it may look
like there are two different problems.
Requested by: ru
stick their username (which sendmail will make into an e-mail address)
inside '<>'. Sendmail will still DTRT with this, and it conveniently
puts the submitter's name and e-mail address on one line, just like it
should be after "Submitted by" in a commit message.
it is taken as a single escape (`\') character. This prevented \e
from being output correctly in -Tkoi8-r case.
Noticed by: Andrey Simonenko <simon@comsys.ntu-kpi.kiev.ua>
$ PERL_DL_NONLAZY=1 perl -MPOSIX -e ''
Can't load '/usr/libdata/perl/5.6.0/mach/auto/POSIX/POSIX.so' for module
POSIX: /usr/libdata/perl/5.6.0/mach/auto/POSIX/POSIX.so: Undefined
symbol "sv_setptrobj" at /usr/libdata/perl/5.6.0/XSLoader.pm line 73.
at /usr/libdata/perl/5.6.0/mach/POSIX.pm line 24
Compilation failed in require.
BEGIN failed--compilation aborted.
This problem only exists in -CURRENT. Most often it is reproduced when
compiling some perl extension manually. Make test uses PERL_DL_NONLAZY,
and if a tested module uses POSIX, boom!
Luckily, we don't see it very often, mostly because the vast majority of
p5 ports do not perform the `make test' step.
Submitted by: Anton Berezin <tobez@tobez.org>
Needs to be a committer already: Anton Berezin <tobez@tobez.org>
end of the include searching. We really need a real fix for the issue of
which set of headers to use in compiling the cross-tools -- /usr/include,
or /usr/src/include.
produced by miniperl during buildworld phase.
- While at it, do loading of SelfLoader only when it is needed, and in
place where it is needed.
Submitted by: tobez@tobez.org (who is doing way too much good work
and is in need of the Commit Bit punishment)
for a module overridden by BSDPAN instead of the original module.
* Fix wrong manual section numbers in SEE ALSO.
* Add `Revision 42' to the beer-ware license. The BSDPAN author did not
originally get the reference and removed the revision from original
phk's version.
Submitted by: Anton Berezin <tobez@tobez.org>
in bsd.obj.mk rev.1.35, and
On Tue, Apr 24, 2001 at 06:29:27AM +1000, Bruce Evans wrote:
>
> This is bogus. It is normal for sloppy cleaning to cause problems.
> `make depend' after `make depend' should not do anything. I'm still
> waiting for a similar problem in kdump to be fixed properly :-).
possible to use old generated doc-* files as the source for new ones.
Wrong -mdoc files would then be installed, and man(1) failed with the
following diagnostics:
mdoc error: end-macro (.em) respecification is not allowed. (#41)
Should this have been `.Em ...'?
Put helper stuff into `beforedepend' to cleanup old files.
Makefile first infected in rev 1.15.
Reported via: -current
* Fix a bug which prevented the second invocation of overloaded
subs governed by SelfLoader from functioning.
* Fix a bug with XS modules. MakeMaker determines where the xsubpp
preprocessor is located by adding "ExtUtils" string to the Perl's
system path. At the same time, BSDPAN has to fool MakeMaker into
thinking that the Perl's system path is elsewhere. Now we
`reverse-adjust' the notion of the Perl's system path for a
moment, so xsubpp utility is found.
This should fix the breakage with some p5- ports.
Reported by: vanilla
Submitted by: Anton Berezin <tobez@tobez.org>
BSDPAN is the collection of modules that provides tighter than ever
integration of Perl into BSD Unix.
Currently, BSDPAN does the following:
o makes p5- FreeBSD ports PREFIX-clean;
o registers Perl modules in the FreeBSD package database with a
package name derived from the module name.
The name is of the form: bsdpan-ModuleName-V.VV.
Anyone interested in where BSDPAN is developing should read Anton's
message to the ports mailling list:
Message-ID: <20010105040828.A26011@heechee.tobez.org>
Submitted by: Anton Berezin <tobez@tobez.org>
I have held this back for over a year, as we will always have to wrestle
with the question of "*which* libiberty sources to use". Sigh, if only
the GNU people would treat it as a totally separate library from GCC, et al.
and release it as such...
"locailzed"; it should read "localized".
* The "test" operator can be a bit dangerous (e.g., if
a newbie writes a script named "test" and has it call
"apropos", which calls "test, ...).
* In its use as "whatis", apropos formats the first
line of the output differently than the following
lines. Specifically, it leaves out all but one of
the spaces that precede the dash in the first line.
Submitted by: Rich Morin <rdm@cfcl.com>
PR: 25126
of stuff (and thus length of error output) we put on the invocation command
line. Also follow the new FSF/GNU style of giving the symbol a value so it
can be used in `if()' statements in addition to `#if' so seldomly compiled
in code (on some platforms) gets compiled always, to help reduce bit-rot.
: As some manual pages are intended only for specific architectures,
: man searches any subdirectories, with the same name as the current
: architecture, in every directory which it searches. Machine specific
: areas are checked before general areas. The current machine type may
: be overridden by setting the environment variable MACHINE to the name
: of a specific architecture.
current_file_name and current_link_name sometimes point into the
middle of malloc()ed memory and sometimes point to alloca()ed memory,
but free() is sometimes called on them. This seems to be harmless
for the usual tar operations, but it is usually fatal for `tar -W'.
E.g., for `cd /etc; tar Wcf /tmp/foo rc', at the start of
verify_volume(), current_file_name points to alloca()ed memory, and
tar attempts to free it.
groff(1) devices for localized and non-localized pages.
Currently, for *.ISO_8859-1 locales the device in both
cases is "latin1", and for KOI8-R locale it is "koi8-r"
for localized and "ascii" for non-localized pages.
Discussed with: des
change out that made libperl.so dynamically depend on libutil.so to pick
up setproctitle() in its old location. This breaks changes involving
incomptabable libc's because ld looks for the dynamic dependency
(which it has no business doing anyway) in the wrong place - /usr/lib!
call and trap entry points so they're easy to find and change
- Use the cpuhead and allcpu list to locate globaldata for the current
cpu, rather than SMP_prvspace or __globaldata
- Use offsets into struct globaldata directly to find per-cpu variables,
rather than symbols in globals.o
Glanced at by: peter
non-threaded programs. This provides threaded programs with the
needed exception frame symbols.
parts submitted by: Max Khon <fjoe@iclub.nsu.ru>
PR: 23252
when using gdb on a remote target. The fix is to restrict PT_GETDBREGS
calls to `child' and `freebsd-uthreads' targets solely.
I've been in some conversation with Brian about this, and this solution
seems to be the most appropriate one.
PR: gnu/21685
Submitted by: bsd
GCC 2.7.2.3 as that was the version of GCC in active use before the switch
to ELF.
The GCC 2.9[67] versions of these files carry more baggage and I'm not sure
the are appropriate for this linker.
Add the -U and --unlink-first options which are the offical verions of our
--unlink localism.
Add support for the "TAR_OPTIONS" environmental variable.
Obtained from: GNU tar 1.13.18
Looking in src/Makfile* it looks like all the "WANT_AOUT" support
has been removed, maybe these should just go away...
Note that the a.out `ld' reaches over into src/contrib/gcc for libiberty
bits. This is biting us because the libiberty bits have evolved beyond
what the a.out `ld' can handle.
This change fixes the broken world, but only because very few have
"WANT_AOUT" defined.
present questinos with a different default answer. Somebody submitted
a patch to me once which did something this but I lost it (my bad) so
I'm just going to re-implement it with thanks to whomever it was who
gave me the idea.
files. Mostly -I${.CURDIR} was needed -- especially for YACC generated
files as the new cpp does not look in the ultimate source file
(ie, the .y file)'s directory as told by the "#line" directive. Some were
misspellings of "-I${.CURDIR}" as "-I.".
`wait.h' that was in contrib/binutils/, however this wait.h went away with
bintuils 2.10.0 so I `cvs rm'ed it. Now we find gdb will not build. This
binutils wait.h contained nothing we didn't already have in <sys/wait.h>.
So just hack a symlink to it.
o Move building libperl and miniperl from build-tools to
cross-tools. libperl uses MACHINE_ARCH to determine the
right configuration, which doesn't match the build
machine when cross-building if they are built as build-
tools.
o Since miniperl needs to be built as a cross-tool, it
needs to be installed under /usr/obj so that it can be
used (cross-tools have a special object directory to
avoid build conflicts. As a downside, you can't easily
run cross-tools from their object directory). Remove
the install and distribute override targets. To avoid
having miniperl installed by installworld, remove it
from SUBDIR.
o We can't pickup miniperl from the object directory but
since it's installed, depend on PATH. This is save,
because the makefiles are run with a known path.
o Build libperl again as part of the library target. A
_libperl variable existed, but it was never defined.
o Add chmod to the list of saved tools, because perl
conditionally uses it during install.
The bootstrap-tools and cross-tools targets are modified to
avoid building profiled and shared libraries. While here,
have these targets build static binaries instead of shared
binaries.
Approved by: markm
LinuxThreads port. Dike it out as it was removed from freebsd.h on
19-July-2000 as this option depended on bits not part of the base system
and required people to install the LinuxThreads port in a manner
non-consistent with the workings of our Ports Collection.
Requested by: jasone
- update: For submitting non-maintainer updates/changes
- maintainer-update: For submitting maintainer updates/changes
The intent is to make it easier to spot maintainer sactioned or submitted
updates to ports though it might also be useful for userland code that is
maintained by someone that is not a FreeBSD committer.
Submitted by: nbm and many others
specific changes into the original distribution (although sometimes
with a slightly different approach) and to add two commandline
options to send-pr(1):
-c which allows you to specify an address to CC this
PR to
-s allow the severity to be specified on the commandline
PR: 17922
when using the egcs and gcc-devel ports, along with GCC built from stock
public FSF sources. With out this change, FreeBSD will be removed from
the list of systems GCC 3.0 must be evaluated on before release. With
the effort some of us put into getting FreeBSD on this list, we should
not turn this effort into a waste, else we might not be worth fighting
for in the future. (note that Alpha and IA-64 versions of crt{i,n}.S
are needed)
* Switch from our own crt{begin,in} to those created from GCC's crtstuff.c.
This will allow us to switch to DWARF2 exceptions in the future, along with
staying in sync with any future GCC requirements.
* Break out our ELF branding bits into a seperate file. Currently this
is now included by our crt1.c files (since this functionality was part of
our native crtbegin.c). Later crtbrand.o will be merged in the creation
of crti.o.
with Brian's kernel support for i386 debug registers. This makes
watchpoints actually usable for real-life problems. Note: you can
only set watchpoints on 1-, 2- or 4-byte locations, gdb automatically
falls back to [sloooow] software watchpoints when attempting to use
them on variables which don't fit into this category. To circumvent
this, one can use the following hack:
watch *(int *)0x<some address>
David O'Brien is IMHO considering to get this fully integrated into the
official GDB, but as long as we've got the i386/* files sitting around
in our private FreeBSD tree here, the feature can now be tested more
extensively, so i'm committing this for the time being.
This work has been done in order to debug a tix toolkit problem, thus
it has been sponsored by teh Deutsche Post AG.
Reviewed by: bsd (not the operating system, but Brian :-)
ENABLE_SUIDPERL is set to true. When perl is updated to remove the
fork mail code, additional warnings will enable the users to know what
is gonig on and how to correct it. Markm will make those commits as
part of his perl patch integration. suidperl is installed with
execute permissions so that markm's added error messages wil be seen
by the user.
Previously, using -S/--skip, -f/--force, or -t/--batch to skip a patch in
a patchset still registers a failure which causes patch to return a
non-zero exit code. This is particularly undesirable with regards to
ports as there is no way to ignore the non-zero code. (Luckily, we don't
currently have any ports that make use of any of these options.)
The PR (yes, my own) is slightly incorrect: It states that -f does indeed
properly skip patches. It does, but it still sets the failure flag causing
patch to return non-zero.
PR: 19638
Submitted by: kbyanc@posi.net
1) (Biggest) I tried long-and-hard to keep the version number (5.006)
backwards compatible with FreeBSD; I have lost this battle, and
must defer to the Perl convention (5.6.0). Victims include suidperl.
this means that dirs with a name of 5.006 will be replaced with
dirs named 5.6.0 in both /usr/libdata/perl and /usr/local/lib/perl.
2) Errno module is added.
3) Alpha bits extensively tweeked after a Beast-build.
Other commits to follow.
where it is used. c-decl has symbols that conflict with several of the
cc1plus sources.
GNU `ld' was changed in Dec 1999 to be more be compatable with the way that
other linkers work (specifically in the Solaris linker). The 2.9.1 `ld',
did the Wrong Thing in that if a library contained a common symbol that
matched a definition of that symbol in another (already linked in object)
it would also be linked in, even if there was no other reason to do so.
This is wrong. The library should only be linked in if it contains
non-common, non-weak symbols which are needed by previously linked in
objects.
Don't use MANDEPEND. It hasn't had anything to do with dependencies for
5-6 years, but is still being used, mainly in groff/*/Makefile, where it
amounts to just a macro giving the list of generated man pages. Since
all man pages in groff are generated (from .man to .[1-9]), it's simpler
to use the source names ({$MANX}) to give the list.
Fixed some other style bugs.