Commit Graph

111 Commits

Author SHA1 Message Date
Ceri Davies
8211eded3e Bump .Dd before I get told off. 2005-12-23 15:33:31 +00:00
Ceri Davies
55f92f6465 Commands like gmirror, graid3, ... and others which use dlopen() to load
classes from say, /lib/geom, cannot be statically linked completely.
Moreover, those shared objects may require other shared objects (i.e.
 for geom, libraries like -lmd, -lcrypto).

The libs_so extension to crunchgen fixes this by allowing some libraries
to be linked in dynamically.  This requires that a copy of rtld and the
shared libraries be made available to the crunched binary, and so is not
suitable for all environments.  Crunchgen configurations which do not
use the 'libs_so' keyword are unaffected and produce identical binaries
with and without this commit.

Approved by:		murray (mentor, in spirit), jhb
In collaboration with:	Adrian Steinmann <ast at marabu dot ch>
MFC After:		6 weeks
2005-12-23 15:31:37 +00:00
Marcel Moolenaar
757686b115 Make our ELF64 type definitions match standards. In particular this
means:
o  Remove Elf64_Quarter,
o  Redefine Elf64_Half to be 16-bit,
o  Redefine Elf64_Word to be 32-bit,
o  Add Elf64_Xword and Elf64_Sxword for 64-bit entities,
o  Use Elf_Size in MI code to abstract the difference between
   Elf32_Word and Elf64_Word.
o  Add Elf_Ssize as the signed counterpart of Elf_Size.

MFC after: 2 weeks
2005-12-18 04:52:37 +00:00
Ruslan Ermilov
951e4d1c91 In crunchgen(1), when calling make(1), don't redirect stderr to stdout,
just rely on the exit status to detect an error.  This makes crunchgen(1)
safe to use with certain make(1) debugging flags.

MFC after:	1 week
2005-01-20 10:49:03 +00:00
Ruslan Ermilov
e653b48c80 Start the dreaded NOFOO -> NO_FOO conversion.
OK'ed by:	core
2004-12-21 08:47:35 +00:00
Ruslan Ermilov
a35d88931c For variables that are only checked with defined(), don't provide
any fake value.
2004-10-24 15:33:08 +00:00
Hartmut Brandt
a8595b6640 Fix a 4.X -> 5.X upgrade problem: crunchgen used to emit a line 'MAKE=make'
or 'env MAKEOBJDIRPREFIX=... make' depending on the setting of
MAKEOBJDIRPREFIX in the environment. In any case this line kills the
original value of ${MAKE}. When during buildworld a new make is built (as
is the case during the upgrade) this causes a wrong make to be picked up
(the first one in the path). Use the same technique as Makefile.inc1:
create a MAKEENV variable and a CRUNCHMAKE that calls ${MAKE} with that
MAKEENV prefixed. Use CRUNCHMAKE instead of MAKE throughout the generated
makefile. This leaves the original ${MAKE} undisturbed.
2004-08-09 19:18:19 +00:00
Ruslan Ermilov
07bfccd71e Mechanically kill hard sentence breaks. 2004-07-02 23:13:00 +00:00
David E. O'Brien
49a3940873 Adjust the system endian and a.out headers to be more MI and cross-building
friendly.  Use the systems headers rather than local versions.

Reviewed by:	ru
2004-06-22 17:05:39 +00:00
Olivier Houchard
ed575be468 Tell crunchide to deal with arm elf binaries as well.
Rescue can now be built for arm.
2004-06-06 16:01:36 +00:00
Stefan Farfeleder
40905e9049 Include <netinet/in.h> for ntoh*() and hton*() prototypes.
Approved by:	das (mentor)
2004-05-24 11:59:17 +00:00
Ruslan Ermilov
adcb86e214 Fix a bug that caused i386 to produce broken binaries for big-endian
64-bit platforms.  (size_t is 32bit on i386, but Elf_Shdr.sh_size is
64bit on SPARC64.)
2003-08-08 15:44:17 +00:00
David E. O'Brien
930d8c703a Teach crunchide(1) about PowerPC ELF.
PR:		54526
Submitted by:	Stefan Farfeleder <stefan@fafoe.narf.at>
2003-07-22 00:19:40 +00:00
Peter Wemm
8e81109e14 Add AMD64 support. 2003-06-03 01:37:32 +00:00
Ruslan Ermilov
2343a53401 The second chdir(1) that I trimmed is needed too
if the program has an object directory.

Explained by:	Tim Kientzle <kientzle@acm.org>
2003-04-23 04:28:35 +00:00
Ruslan Ermilov
7cc7315cfb chdir(1) into a source directory before attempting to determine the
OBJS list.  This is needed to crunch any program that relies on the
correct .CURDIR setting, e.g. src/bin/csh.

Submitted by:	Tim Kientzle <kientzle@acm.org>
2003-04-22 14:01:33 +00:00
David E. O'Brien
2d57da023a Back out the totally unapproved backout of my commits. 2003-03-29 03:03:42 +00:00
Ruslan Ermilov
82c7cf3159 Complete the endianness support -- sparc64 can now do i386.
Tested on:	sparc64 -> i386, i386 -> sparc64
Debugged by:	elfdump(1)
2003-03-13 11:47:31 +00:00
Ruslan Ermilov
d51456da6f Part 1/3 of unbreaking cross releases:
Back out the removal of custom version of endian.h system header.
On recent systems, it just falls back to <sys/endian.h>.  But on
older systems like 5.0-DP1 or 4-STABLE, this private version may
be necessary, as crunchide(1) is a cross-tool for "make release".

Spotted by:	kris, markm
2003-01-29 08:37:26 +00:00
David E. O'Brien
90b77cf39a Use <sys/endian.h> rather than a private verison.
Tested on:	sparc64, Athlon[32]
2002-12-30 10:04:46 +00:00
Ruslan Ermilov
4192cfffe2 Bootstrapping aid for 4.0-RELEASE. 2002-11-13 11:50:40 +00:00
Philippe Charnier
557f7e714d Put author name under .An/Aq. 2002-10-16 15:51:16 +00:00
Gregory Neil Shapiro
b0c70f811b Apply the envp fix to the other call to main() as well.
Submitted by:	Peter Edwards <pmedwards@eircom.net>
2002-08-09 02:39:38 +00:00
Gregory Neil Shapiro
8f3548b29f Pass envp to crunched program's main() routines as some depend on it.
Note that crunchgen's stub .c programs already have the code to use it:

	    "int _crunched_%s_stub(int argc, char **argv, char **envp)"
	    "{return main(argc,argv,envp);}\" >%s_stub.c\n",

Add $FreeBSD$ to allow the commit.

Reviewed by:	luigi
MFC after:	3 days
2002-08-04 22:14:44 +00:00
Ruslan Ermilov
3d8d000653 mdoc(7) police: markup nit. 2002-05-30 07:51:22 +00:00
Ruslan Ermilov
a2acc41379 Get all the fruit from makefile. 2002-05-25 13:39:20 +00:00
Ruslan Ermilov
ccde2810d9 Removed dead code. 2002-05-24 06:30:07 +00:00
Ruslan Ermilov
d8d9770881 Handle endianness. This completes cross-support for sparc64. 2002-05-24 06:24:40 +00:00
Ruslan Ermilov
66c795d4f4 Added support for ia64 and sparc64. 2002-05-21 15:36:29 +00:00
Ruslan Ermilov
64b06e7897 Make crunchide(1) a cross-tool; needed for cross-arch "make release".
Note that a.out is only supported for the non-cross i386 case.
2002-04-30 09:34:53 +00:00
Dag-Erling Smørgrav
d397408818 Usage style sweep: spell "usage" with a small 'u'.
Also change one case of blatant __progname abuse (several more remain)
This commit does not touch anything in src/{contrib,crypto,gnu}/.
2002-04-22 13:44:47 +00:00
Philippe Charnier
7f94b8deee Use `The .Nm utility' 2002-04-20 12:27:18 +00:00
Luigi Rizzo
252f13ab51 Add a "special progname lib xxx ..." command to crunchgen
so the .lo files can be partially linked against libraries
which redefine symbols in the standard libs, or which reference
symbols in the objects.

Submitted by: Sam Leffler
MFC After: 3 days
2002-03-30 16:48:30 +00:00
Peter Wemm
2b30bcbb41 ia64 support. Hide a.out support solely under i386. While alpha never
was released in a.out form, it does define the a.out data structures.
The ia64 port does not.
2001-10-23 10:18:41 +00:00
Josef Karthauser
1554755e12 Make source crunches work as well as object crunches; broken in the
last commit that fixed object crunches.

Repeat after me, "no excuses for not testing".
2001-08-17 11:11:10 +00:00
Josef Karthauser
11384533ea Make crunchgen crunch pre-built object files again, i.e.:
progs prog1
    special prog1 objdir ../../prog1/obj
    special prog1 objs prog1.o

This fixes a bug that I introduced around the time of 4.2-release.

Reported by:	Larry Baird <lab@gta.com>
2001-08-15 14:37:26 +00:00
Ruslan Ermilov
753d686d34 mdoc(7) police: s/BSD/.Bx/ where appropriate. 2001-08-14 10:01:54 +00:00
David E. O'Brien
90e655ea4e Perform a major cleanup of the usr.sbin Makefiles.
These are not perfectly in agreement with each other style-wise, but they
are orders of orders of magnitude more consistent style-wise than before.
2001-07-20 06:20:32 +00:00
David E. O'Brien
ac24b049cc Remove GCC'isms in CFLAGS. 2001-07-20 04:23:13 +00:00
Dima Dorfman
f247324df7 Remove whitespace at EOL. 2001-07-15 08:06:20 +00:00
Ruslan Ermilov
a4c37c816b mdoc(7) police: removed HISTORY info from the .Os call. 2001-07-10 15:12:08 +00:00
Josef Karthauser
d1a97625be Use 'LIBS+= ...' instead of 'LIBS= ...' in the generated makefile
so that the user can override libraries at build time.  This is
makes it easier to cross-compile crunch builds.

Suggested by:	luigi
MFC after:	3 days
2001-06-20 23:21:02 +00:00
Ruslan Ermilov
aff344349b mount_msdos(8) -> mount_msdosfs(8). 2001-06-01 11:25:40 +00:00
Ruslan Ermilov
4c3748cf1d mount_fdesc -> mount_fdescfs
mount_portal -> mount_portalfs
2001-05-24 13:23:54 +00:00
David E. O'Brien
5e6220d9d0 * include/elf.h has been repo copied to include/elf-hints.h, and it no
longer includes machine/elf.h.
* consumers of elf.h now use the minimalist elf header possible.

This change is motivated by Binutils 2.11.0 and too much clashing over
our base elf headers and the Binutils elf headers.
2001-05-02 23:56:21 +00:00
Ruslan Ermilov
67373d62bc Document ``special <progname> ident <identifier>'' command. 2001-04-04 08:28:00 +00:00
Ruslan Ermilov
a0bac7e013 - Call subclean' after clean' for each program.
- Eliminate compiler warning.
2001-04-04 08:26:54 +00:00
Ruslan Ermilov
42037fc8b4 `buildopts' may affect the selection of object files.
Make sure we pass $(BUILDOPTS) to the `clean' target
so that `make clean' works on the same set of object
files.  Otherwise, we may end up with an incorrectly
built and up-to-date object file.
2001-03-30 08:04:25 +00:00
Josef Karthauser
87eb4a4220 Liberal application of style(9). 2001-01-10 14:08:48 +00:00
Josef Karthauser
617b818021 Flag an error and remove the program from the list if there is
no source directory or no objects can be determined.

Initialise a structure variable.
2001-01-10 13:27:38 +00:00