Home | History | Annotate | Download | only in crunchgen
History log of /src/usr.bin/crunch/crunchgen/crunchgen.c
RevisionDateAuthorComments
 1.96  05-Feb-2024  andvar fix various typos in comments.
 1.95  23-Jun-2023  rin crunchgen(1): Clear PaX flags instead of removing its ELF note section.

The latter results in zero-filled hole in ELF note segment for EARM,
where PaX section is not located the bottom of that segment (see
src/lib/csu/sysident.S). Fortunately, this hole does not cause real
harms for our in-kernel ELF note parser, except for noisy warnings on
DIAGNOSTIC kernels.

Bump CRUNCH_VERSION.

PR toolchain/52675
 1.94  29-Dec-2019  christos branches: 1.94.8;
1. Remove all the special handling of variables (-d -p -P -s -S) that
were dealing with DBG (-d) LDSTATIC/NOPIE (-p), and the rest with
disabling/enabling sanitizers.
2. Use emalloc/estrdup for all the allocators instead of only some cases.
3. Add -V varspec which passes variables on the command line (as DBG
and LDSTATIC used to be passed before) instead of appending them
to the on-the-fly Makefile using -v varspec.
4. Change the distrib and rescue Makefiles to use -V instead of the removed
flags.

The motivation of this is to make variable handling consistent, less magical,
and remove the need for changing crunchgen each time we want to add disabling
an option by default.

(as proposed in tech-toolchain)
 1.93  18-Dec-2019  christos Also disable ssp and fortify by default.
 1.92  14-Feb-2019  mrg remove the hack to remove .eh_frame -- gcc7 is fixed it seems.
 1.91  13-Feb-2019  mrg while we're still figuring out the gcc7 vs .eh_frame issue, apply
the don't remove eh_frame hack to mips as well. hpcmips testbed
is also failing currently:

[ 3.1238738] panic: init died (signal 6, exit 12)
 1.90  12-Feb-2019  mrg hack alert time:

on sparc and sparc64, don't remove .eh_frame section. it leads
to failure as something is referenced, and objcopy ends up
emitting a broken binary that can't be run -- it attempts to
load at va=0, beyond having missing referenced data.

also, on sparc64 also don't remove .note.netbsd.mcmodel.


the former should be revised when we can avoid it.
 1.89  26-Jul-2018  wiz Sync usage with man page.
 1.88  25-Jul-2018  kamil Introduce a new option -S in crunchgen(1)

The -S argument enables sanitization with a sanitizer in libc.
 1.87  21-Jun-2018  kamil branches: 1.87.2;
Add new option -s to crunchgen(1) -- enable sanitization

As of today typical sanitizers require dynamic executables, while
crunchgen(1) programs are produced with static properties.

Lack of specified -s will:
- generate a Makefile file with NOSANITIZER=
- build programs that are dependencies with NOSANITIZER=

In future there is an option to handle sanitization in statically linked
programs.

An idea with -s LGTM by <christos>
 1.86  08-May-2018  mrg in dir_search(), don't assume a directory existing is useful, instead
confirm that there is a non zero makefile in there. (this assumes
the makefile is called "Makefile", which is assumed in other places
in crunchgen.c already, so this doesn't make it worse.)

this fixes build issues when an empty subdir exists because some files
were moved subdir at some stage (ktrace, rcorder), and a non-prune
update may look in the wrong dir.

bump version (lots of updates between now and the previous update.)
 1.85  08-Oct-2017  christos branches: 1.85.2;
Handle static PIE
 1.84  29-May-2016  christos Don't make crunch binaries PIE
 1.83  16-May-2015  matt Use :Q instead of " to quote make vars DBG and LDSTATIC
 1.82  04-Jan-2014  martin Remove .note.netbsd.mcmodel and .note.netbsd.pax from the chrunched binaries.
We don't know wether the former would make sense (as currently used, it never
makes sense for static binaries) and we can not conclude safe PAX flags from
combined binaries.
 1.81  10-Jun-2013  joerg Strip .eh_frame and .eh_frame_hdr from crunched binaries.
 1.80  30-Aug-2011  joerg branches: 1.80.2; 1.80.8;
static + __dead
 1.79  15-May-2011  christos Make this produce proper ansi c and knf.
 1.78  24-Apr-2010  christos pass LDSTATIC to recursive makes.
 1.77  21-Apr-2010  christos move LDSTATIC before the includes because the rules need it early for
conditionals.
 1.76  09-Jan-2010  kiyohara Fix a bug.
always mkdir for 'objs' and 'objdir' when NEW_TOOLCHAIN.
 1.75  14-Apr-2009  lukem Fix WARNS=4 issues (-Wshadow -Wcast-qual)
 1.74  19-Oct-2008  apb branches: 1.74.4;
In shell scripts invoked during a build, and in crunchgen, use ${AWK}
instead of plain "awk". The Makefiles that invoke these scripts
or programs will pass AWK=${HOST_AWK:Q}.
 1.73  18-Oct-2006  freza Treat multiple

SPECIAL prog {objs,objpaths,keepsymbols} itemX

lines (where "prog" is fixed) in crunchgen configuration the same as

SPECIAL prog {objs,objpaths,keepsymbols} item1 ... itemN

OK by David Laight
 1.72  26-Aug-2006  christos More programs using efun.
 1.71  13-Jun-2006  christos detect overflow and exit with an error.
 1.70  11-Jun-2006  christos PR/33698: Kevin Massey: use strlcpy/strlcat to avoid stack overwrites.
 1.69  02-Jun-2006  simonb Fix problems with program names with a "-" in them, where crunchgen was
outputting the original program name for the stub name instead of the
mangled name.

From Mikolaj Golub on tech-embed.
 1.68  13-Jan-2006  tsutsui branches: 1.68.2;
Don't use data in freed stack.
 1.67  10-Feb-2005  jmc branches: 1.67.2;
Make dependency checking for the pull-over make's actually work.
The make depend needs to be it's own separate make so it's done before the
main make runs. This also fixes issues w. -j breaking on 'depend <target'.

In addition, force the sub cross-over make to always run or otherwise it'll
never check dependencies once a valid foo.cro has been created.

Bump to 20050208
 1.66  31-Jan-2005  christos Revert part of previous [remove cd to objdir] and bump the crunchdate.
Make has been fixed. The cd was in the wrong place anyway, it should
immediately follow ${MAKE}, so it did not work as expected.
 1.65  30-Jan-2005  lukem Explicitly cd to the .OBJDIR in the ${PROG}.strip target.
This fixes the "make -j N dependall" build issues people were
seeing in src/rescue, that appears to have been introduced
in rev 1.62.

Use the MAKEVERBOSE macros (if present) to print the pretty message.

Set the CRUNCH_VERSION to 20050130.
 1.64  30-Oct-2004  dsl Add (unsigned char) cast to ctype functions
 1.63  25-Sep-2004  wiz Sync usage with man page (sort, add -O).
 1.62  25-Sep-2004  dsl Change the way crunchgen works when doing 'reachover' builds.
Instead of trying to identify all the .o files that make each target rely
on the targets own Makefile having a program.ro target that will compile
all the objects and link them into a single relocatable.
Rename each program's 'main' to '_crunched_<prog>_stub' instead of compiling
a small piece of C.
The old behaviour can be forced by specifying -O, and is also done if the
config file specifies 'objs' or 'objpaths'.
As well as simplifying the logic, this means you only get a single 'prog.ro
is up to date' message for each program during the build.
 1.61  25-Sep-2004  dsl Use a single awk command (instead of awk and a lot of greps) to generate
the list of symbols to be renamed.
Rename symbols to <symbol>$$from%%<prog> (not _$$hide$$<prog>.cro$$<symbol>)
so that gdb reports the symbol name instead of "_" (the $$ is treated as a
C++ name mangle and nothing after it is output by default).
 1.60  25-Sep-2004  dsl Whitespace police:
if, for and while are not functions,
put controlled statements of if and while onto separate lines
put function names into column 1
 1.59  25-Sep-2004  dsl Remove the always defined RENAME_SYMS and the code that would be
compiled were it defined.
That code is out of date, doesn't work on some archs, and is in the way
of another commit.
 1.58  23-Aug-2004  wiz Sync usage with man page.
 1.57  19-Aug-2004  christos Add -v VARSPEC, so that we can pass variable assignments to make(1)
 1.56  06-Jun-2004  christos remove copyright and comment sections. Saves ~40K on the crunched
ramdisk binary.
 1.55  28-Dec-2003  jmc branches: 1.55.4;
Fix PR#4980 and support common symbols correctly in crunched programs.
Exclude them from renaming and expect the linker to do the right thing in
resolving them all to the library copy (i.e. optarg) or locally as the
case may be. Testing multiple programs crunched which reference optarg shows
correct behavior now.
 1.54  27-Dec-2003  jmc Support crunch configs which specify relative srcdir's but don't use -D. For
these cases, prepend getwd() onto the front of them so a full correct path
is passed to the reach over make command (as it's running from at least
a subdir of the current directory for each object)
 1.53  08-Dec-2003  dmcmahill Use grep in favor of egrep in a few places. The pattern being searched
for is just a string and some egrep's (notably the Solaris one) don't like
the -w option.
 1.52  19-Nov-2003  nathanw Change the make(1) command lines generated by crunchgen from:

"make -a -b VAR=VALUE -c -d target" to
"make -a -b -c -d VAR=VALUE target"

to avoid depending on make's undocumented and unportably-implemented
handling of the former case.

Makes crunchgen and nbmake work together on Cygwin.
 1.51  27-Oct-2003  lukem Overhaul how `build.sh tools' are used:

* Rename "config.h" to "nbtool_config.h" and
HAVE_CONFIG_H to HAVE_NBTOOL_CONFIG_H.
This makes in more obvious in the source when we're using
tools/compat/config.h versus "standard autoconf" config.h

* Consistently move the inclusion of nbtool_config.h to before
<sys/cdefs.h> so that the former can provide __RCSID() (et al),
and there's no need to protect those macros any more.

These changes should make it easier to "tool-ify" a program by adding:
#if HAVE_NBTOOL_CONFIG_H
#include "nbtool_config.h"
#endif
to the top of the source files (for the general case).
 1.50  07-Oct-2003  lukem fix typo that prevented ${PROG}.unstripped from being removed in "clean"
 1.49  09-Jul-2003  dsl Keep unstripped binary in $OBJ, use are timestamp instead of prog.stripped.
Patentially useful as a source of symbol information for debugging.
 1.48  01-Jun-2003  thorpej "objcopy --redefine-syms-file" is now "objcopy --redefine-syms".
 1.47  15-May-2003  dsl Add an extra target to the xxx.mk file that is equivalent to 'all', but which
doesn't pick up baggage from bsd.own.mk and bsd.prog.mk.
This stops parallel makes exploding because they try to build ${PROG} to soon.
Fixes toolchain/21563 (with change to src/distrib/common/Makefile.crunch).
Upped version of crunchgen to 0.3
 1.46  14-May-2003  dsl Add a .WAIT to ensure that all the program objects are built before
trying to build the crunched binary.
Might fix toolchain/21563
 1.45  09-May-2003  dsl Make the prog.mk makefile run make in each of the target directories and
then build the program itself.
This means that changes to any of the program source files cause the
crunched binary to be rebuilt.
Seems to work ok with the sysinst ramdisks.
 1.44  18-Mar-2003  fvdl Back out rev 1.43 for now, it seems to create some new problems (see
the sysinst Makefile).
 1.43  01-Mar-2003  enami No need to invoke the make command so many times. It can handle all
the target specified in command line.
 1.42  18-Feb-2003  msaitoh The name of the working directory for each prog is converted by "s/-/_/".
The directory list to be removed (i.e. make clean) has to be set with
the converted name.
 1.41  29-Jan-2003  simonb Use new the --redefine-syms-file option to objcopy to rename the symbols
we want to hide instead of making global symbols local (which doesn't
work on MIPS).
 1.40  20-Aug-2002  lukem - move LDSTATIC=-static to the bottom, so that "LDSTATIC=" in /etc/mk.conf
doesn't cause lossage
- set NOMAN= at the top (rather than MKMAN=no)
 1.39  09-Jul-2002  pooka Add -o, -D, and -L to usage() to get it in sync with reality.
 1.38  29-May-2002  lukem revert revision 1.37; it causes problems when running make(1) on a
crunchgen-created makefile with a partiallly complete build
(a situation which is more common than you think...)

solving the "parallel build" problem for crunchgen-created makefiles
needs to be done a different way...

fixes [toolchain/17012] from me.
 1.37  02-May-2002  sommerfeld branches: 1.37.2;
Some tweaks to (hopefully) make the crunchgen-generated makefile
parallel-build-safe.
 1.36  29-Apr-2002  sommerfeld Invoke the "make crunchgen_objs" submake with -B so we aren't confused
if we're being invoked in the context of a parallel build.
 1.35  31-Mar-2002  lukem Move tempfname[] to fillin_program_objs() (the only place that calls it),
and assign it before each use of mkstemp(3).
Problem noted by Ben Harris <bjh21@netbsd.org> in [toolchain/16140].
 1.34  31-Mar-2002  lukem Use "r" instead of "r+" to popen(3), since the latter is not portable
and the I/O stream is only read from in any case. Problem noted and fix
suggested by Ben Harris <bjh21@netbsd.org> in [toolchain/16139].
 1.33  02-Feb-2002  lukem CRUNCHEDPROG=1 is a bit more useful if it's also defined when
determining prog_OBJPATHS ...
 1.32  02-Feb-2002  lukem pass CRUNCHEDPROG=1 to make(1) when building progs from their Makefiles.
allows different options for programs that are being crunchgen(3)ed.
 1.31  31-Jan-2002  tv Include config.h for host tool; protect __RCSID.
 1.30  25-Jan-2002  ragge Add special command "keepsymbols", allows the specified external symbols
not to be hidden. From Jens Nilsson, jens@rockstorm.se.
 1.29  08-Nov-2001  jmc Oops...don't nuke the global symbols with objcopy. Just keep the crunched stub
and revert the others to locals
 1.28  07-Nov-2001  drochner remove superflouos arguments to fprintf()
 1.27  07-Nov-2001  christos make sure that we ramdiskbin is static. By the numbscull! Nobody tested this?
BTW. it seems that only make working floppies with USETOOLS=no. Will
investigate more.
 1.26  21-Oct-2001  jmc Check for MAKEFLAGS in the env and pass those to the test make's run for
finding obj files. Otherwise -m <new mk files> won't get passed and can
cause problems on some cross builds.
 1.25  05-Oct-2001  jmc If USE_NEW_TOOLCHAIN is defined use objcopy instead of crunchide as it works now.
 1.24  04-Oct-2001  jmc Convert makefile to use bsd.prog.mk. Makes linking work since the .mk file
takes care of it and this will handle a DESTDIR build setup then.
 1.23  04-Oct-2001  jmc Add a -d option to set the DBG flag to whatever flags the builder wants. If
it's not set, default to -Os (so it's not hard coded into the binary.)

Generate a makefile by default that does all object file builds in local
subdirs by binary (i.e. bad144 gets built in $OBJDIR/bad144) via a reach over
make. (Sets .PATH and .CURDIR and does a make for the objects needed in that
dir).

Add a -o option that does the old behavior of searching for obj files by
querying the various object environment vars and searching. Without this
option none of the objdir special options, environment vars, etc will have
effect.

Document all the changes in the man page (and specificly note that without -o
none of the objdir functions take effect).
 1.22  24-Sep-2001  tls Fix some lossage in previous commit: don't remove everything when cleaning
in a source directory, just the object files. This is a _very temporary_
fix; I will untangle the meaning of UPDATE, etc. in this context presently.
 1.21  24-Sep-2001  tls Changes to the emitted makefiles that actually build the objects:

1) Always do a make clean before building objects in any directory. This
is wasteful, but there's really no other simple way to cope with the
fact that the compilation settings (e.g. CFLAGS) appropriate for the
non-crunched build of a program may not be appropriate for the crunched
build. If the objdir magic in make didn't rely upon the presence of an
"obj" or "obj.${MACHINE}" symlink, we could abuse it to handle this but
unfortunately, it does.

2) Override $DBG to cause object files to be built with -Os. We can't emit
"DBG?=" into the generated makefile because of order-of-inclusion issues
with the system Makefiles; the result would be that the default setting
(currently -O2) would always be used instead of -Os. If you're crunching,
you almost certainly are doing it to get a smaller executable (!) so -Os
is almost certainly appropriate for you.
 1.20  05-Feb-2001  christos fix nested extern
 1.19  01-Nov-2000  garbled change the direct call to crunchide to ${CRUNCHIDE}
 1.18  30-Oct-2000  garbled Modify this to obey $MAKE in the environment, instead of allways calling
"make" hardcoded. This should cause my cross-ramdisk-builds to stop
blowing a gasket.
 1.17  08-Sep-2000  matt Teach crunchgen.c about MAKEOBJDIRPREFIX.
 1.16  11-Jun-2000  mycroft branches: 1.16.2;
Fix uninitialized structure element.
 1.15  14-Apr-2000  simonb branches: 1.15.2;
Don't declare 'extern opt*' getopt variables.
 1.14  24-Jan-2000  mycroft Don't try to use /tmp/Makefile...
 1.13  09-Jan-2000  sommerfeld Make rules for finding object directory match those used by make:
obj.${MACHINE} takes precedence over obj.
the generated makefile should probably just use the print-objdir hack instead.
 1.12  09-Jan-2000  tsutsui Use uname(3) to determine MACHINE type.
 1.11  21-Jun-1999  cgd put temporary file in /tmp, and cd into src dirs and make w/ "Makefile"
(rather than making w/ "srcdir/Makefile") so that relative path specs in
srcdirs work out correctly.
 1.10  06-May-1999  wrstuden Generate a makefile which is cross-crunching compatabile:

1) Include bsd.sys.mk so we pick up DESTDIR changes to fine .h files.
2) Only set STRIP if it's unset.
3) Generate .cro files rather than .lo files. .lo now is used for "local
objects" - obj's for the host machine not the target machine.
 1.9  13-Sep-1998  wrstuden branches: 1.9.2;
Teach crunchgen to play nice in a cross-compiling environment. Make
the machine type a run-time decision a la make. Also, use ${LD}
for the linker, not ld.

Note: you will have to delete the crunchgen cache file for these
changes to take effect.
 1.8  28-Jul-1998  mycroft __AUDIT__ cleanup.
 1.7  02-Aug-1997  perry 1) RCSid police
2) Add __RCSIDs where apropriate.
3) WARNS=1, and clean up sources for WARNS=1 (including replacement of
a mktemp with a mkstemp even though it was probably safe...)
4) Some other small cosmetic changes
 1.6  23-Jan-1997  cgd give crunchide a C label name with -k, since crunchgen really doesn't
want to have to care about the object format in use, and C label prefix
is object format dependent.
 1.5  04-May-1996  pk Apply `topdir' prefix to relative paths in `special srcdir <prog> <path>'
lines.
 1.4  08-Oct-1995  gwr Allow an override of STRIP=something_else in the generated makefile.
 1.3  12-May-1995  cgd add two flags:
-D to specify a "root" from which relative source dir paths
are assumed to begin, and
-L to specify the library path for included libs.
 1.2  29-Aug-1994  cgd local changes; install into /usr/bin, deal with sh warnings, deal with obj.MACHINE, etc.
 1.1  29-Aug-1994  cgd branches: 1.1.1;
Initial revision
 1.1.1.1  29-Aug-1994  cgd crunch, from James da Silva at UMD
 1.9.2.1  21-Jun-1999  perry pullup 1.10->1.11 (cgd)
 1.15.2.1  23-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.16.2.1  09-Sep-2000  matt Approved by jhawk
>Make this work with MAKEOBJDIRPREFIX.
 1.37.2.1  29-May-2002  lukem Pull up revision 1.38 (requested by lukem):
revert revision 1.37; it causes problems when running make(1) on a
crunchgen-created makefile with a partiallly complete build
(a situation which is more common than you think...)
solving the "parallel build" problem for crunchgen-created makefiles
needs to be done a different way...
fixes [toolchain/17012] from me.
 1.55.4.12  23-Jul-2005  snj Pull up revision 1.67 (requested by riz in ticket #5513):
Make dependency checking for the pull-over make's actually work.
The make depend needs to be it's own separate make so it's done before the
main make runs. This also fixes issues w. -j breaking on 'depend <target'.

In addition, force the sub cross-over make to always run or otherwise it'll
never check dependencies once a valid foo.cro has been created.

Bump to 20050208
 1.55.4.11  23-Jul-2005  snj Pull up revision 1.66 (requested by riz in ticket #5513):
Revert part of previous [remove cd to objdir] and bump the crunchdate.
Make has been fixed. The cd was in the wrong place anyway, it should
immediately follow ${MAKE}, so it did not work as expected.
 1.55.4.10  23-Jul-2005  snj Pull up revision 1.65 (requested by riz in ticket #5513):
Explicitly cd to the .OBJDIR in the ${PROG}.strip target.
This fixes the "make -j N dependall" build issues people were
seeing in src/rescue, that appears to have been introduced
in rev 1.62.

Use the MAKEVERBOSE macros (if present) to print the pretty message.

Set the CRUNCH_VERSION to 20050130.
 1.55.4.9  23-Jul-2005  snj Pull up revision 1.64 (requested by riz in ticket #5513):
Add (unsigned char) cast to ctype functions
 1.55.4.8  23-Jul-2005  snj Pull up revision 1.63 (requested by riz in ticket #5513):
Sync usage with man page (sort, add -O).
 1.55.4.7  23-Jul-2005  snj Pull up revision 1.62 (requested by riz in ticket #5513):
Change the way crunchgen works when doing 'reachover' builds.
Instead of trying to identify all the .o files that make each target rely
on the targets own Makefile having a program.ro target that will compile
all the objects and link them into a single relocatable.
Rename each program's 'main' to '_crunched_<prog>_stub' instead of compiling
a small piece of C.
The old behaviour can be forced by specifying -O, and is also done if the
config file specifies 'objs' or 'objpaths'.
As well as simplifying the logic, this means you only get a single 'prog.ro
is up to date' message for each program during the build.
 1.55.4.6  23-Jul-2005  snj Pull up revision 1.61 (requested by riz in ticket #5513):
Use a single awk command (instead of awk and a lot of greps) to generate
the list of symbols to be renamed.
Rename symbols to <symbol>$$from%%<prog> (not _$$hide$$<prog>.cro$$<symbol>)
so that gdb reports the symbol name instead of "_" (the $$ is treated as a
C++ name mangle and nothing after it is output by default).
 1.55.4.5  23-Jul-2005  snj Pull up revision 1.60 (requested by riz in ticket #5513):
Whitespace police:
if, for and while are not functions,
put controlled statements of if and while onto separate lines
put function names into column 1
 1.55.4.4  23-Jul-2005  snj Pull up revision 1.59 (requested by riz in ticket #5513):
Remove the always defined RENAME_SYMS and the code that would be
compiled were it defined.
That code is out of date, doesn't work on some archs, and is in the way
of another commit.
 1.55.4.3  23-Jul-2005  snj Pull up revision 1.58 (requested by riz in ticket #5513):
Sync usage with man page.
 1.55.4.2  23-Jul-2005  snj Pull up revision 1.57 (requested by riz in ticket #5513):
Add -v VARSPEC, so that we can pass variable assignments to make(1)
 1.55.4.1  23-Jul-2005  snj Pull up revision 1.56 (requested by riz in ticket #5513):
remove copyright and comment sections. Saves ~40K on the crunched
ramdisk binary.
 1.67.2.1  04-Jun-2006  tron Pull up following revision(s) (requested by simonb in ticket #1355):
usr.bin/crunch/crunchgen/crunchgen.c: revision 1.69
Fix problems with program names with a "-" in them, where crunchgen was
outputting the original program name for the stub name instead of the
mangled name.

From Mikolaj Golub on tech-embed.
 1.68.2.1  19-Jun-2006  chap Sync with head.
 1.74.4.1  13-May-2009  jym Sync with HEAD.

Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
 1.80.8.2  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.80.8.1  23-Jun-2013  tls resync from head
 1.80.2.1  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.85.2.3  28-Jul-2018  pgoyette Sync with HEAD
 1.85.2.2  25-Jun-2018  pgoyette Sync with HEAD
 1.85.2.1  21-May-2018  pgoyette Sync with HEAD
 1.87.2.2  08-Apr-2020  martin Merge changes from current as of 20200406
 1.87.2.1  10-Jun-2019  christos Sync with HEAD
 1.94.8.1  27-Jun-2023  martin Pull up following revision(s) (requested by rin in ticket #215):

usr.sbin/paxctl/paxctl.8: revision 1.17
usr.sbin/paxctl/paxctl.8: revision 1.18
usr.bin/crunch/crunchgen/crunchgen.c: revision 1.95
usr.sbin/paxctl/paxctl.c: revision 1.13

paxctl(8): Introduce -0 option to clear all PaX flag bits in ELF note.
Part of PR toolchain/52675

crunchgen(1): Clear PaX flags instead of removing its ELF note section.
The latter results in zero-filled hole in ELF note segment for EARM,
where PaX section is not located the bottom of that segment (see
src/lib/csu/sysident.S). Fortunately, this hole does not cause real
harms for our in-kernel ELF note parser, except for noisy warnings on
DIAGNOSTIC kernels.

Bump CRUNCH_VERSION.

PR toolchain/52675

Use Fl for options.

RSS XML Feed