wraplinux.git
12 years agoconfigure.in: use autoconf 2.61
H. Peter Anvin [Sat, 12 Jan 2008 00:26:58 +0000 (16:26 -0800)]
configure.in: use autoconf 2.61

Apparently we're already using autoconf 2.61-isms; may as well make it
formally so.  As such, enable AC_USE_SYSTEM_EXTENSIONS.

12 years agowraplinux 1.0
H. Peter Anvin [Fri, 11 Jan 2008 06:03:55 +0000 (22:03 -0800)]
wraplinux 1.0

12 years agoMCONFIG.in: Add datarootdir to shut up autoconf
H. Peter Anvin [Fri, 11 Jan 2008 06:03:38 +0000 (22:03 -0800)]
MCONFIG.in: Add datarootdir to shut up autoconf

autoconf complains if we don't have datarootdir, even though we don't
use it.

12 years ago"make install" et al
H. Peter Anvin [Fri, 11 Jan 2008 05:58:16 +0000 (21:58 -0800)]
"make install" et al

12 years ago"make release" target
H. Peter Anvin [Fri, 11 Jan 2008 05:50:36 +0000 (21:50 -0800)]
"make release" target

12 years agoAdd RPM specfile
H. Peter Anvin [Fri, 11 Jan 2008 05:44:57 +0000 (21:44 -0800)]
Add RPM specfile

12 years agoDocumentation cleanup, add COPYING
H. Peter Anvin [Fri, 11 Jan 2008 05:41:53 +0000 (21:41 -0800)]
Documentation cleanup, add COPYING

Add COPYING file, and clean up documentation

12 years agoelf: clean up and correct the PHDR merging code
H. Peter Anvin [Fri, 11 Jan 2008 05:41:28 +0000 (21:41 -0800)]
elf: clean up and correct the PHDR merging code

The PHDR merging code used "if" instead of "while", causing issues.
Also, put in a couple of asserts, as well as use the same code for the
PHDR enumeration as for the generation.

12 years agoAdd wraplinux --version (-V)
H. Peter Anvin [Fri, 11 Jan 2008 04:52:48 +0000 (20:52 -0800)]
Add wraplinux --version (-V)

12 years agoman page: fix copyright notice
H. Peter Anvin [Fri, 11 Jan 2008 03:46:28 +0000 (19:46 -0800)]
man page: fix copyright notice

12 years agoAdd "make distclean"
H. Peter Anvin [Fri, 11 Jan 2008 03:45:13 +0000 (19:45 -0800)]
Add "make distclean"

12 years agoAdd "make cleaner" and "make spotless"
H. Peter Anvin [Fri, 11 Jan 2008 03:44:06 +0000 (19:44 -0800)]
Add "make cleaner" and "make spotless"

12 years agoautoconf wants install-sh
H. Peter Anvin [Fri, 11 Jan 2008 03:43:16 +0000 (19:43 -0800)]
autoconf wants install-sh

12 years agoAutoconstipate the build setup, and generate dependencies.
H. Peter Anvin [Fri, 11 Jan 2008 03:41:03 +0000 (19:41 -0800)]
Autoconstipate the build setup, and generate dependencies.

Add autoconstipation framework (from mkzfree) and dependency
generation (from nasm).

12 years agoAdd man page
Marty Connor [Fri, 11 Jan 2008 03:38:06 +0000 (22:38 -0500)]
Add man page

12 years agoRe-enable optimization for the host code
H. Peter Anvin [Fri, 11 Jan 2008 03:16:56 +0000 (19:16 -0800)]
Re-enable optimization for the host code

A debugging decision to disable optimization had accidentally slunk
into the release tree.

12 years agoAdd version file
H. Peter Anvin [Fri, 11 Jan 2008 03:16:20 +0000 (19:16 -0800)]
Add version file

12 years agoGo to Linux kernel indentation style throughout
H. Peter Anvin [Fri, 11 Jan 2008 03:13:39 +0000 (19:13 -0800)]
Go to Linux kernel indentation style throughout

12 years agoreloc: _exit can't be global unless %ebx is regenerated
H. Peter Anvin [Fri, 11 Jan 2008 03:05:41 +0000 (19:05 -0800)]
reloc: _exit can't be global unless %ebx is regenerated

We don't currently use the _exit symbol in reloc_init.S, so we can
rely on main() preserving %ebx around it.  However, if something were
to call _exit() directly this wouldn't be the case, so don't make
_exit a global unless we add %ebx reinitialization.

12 years agoreloc/a20.S: Add newline at end of file
H. Peter Anvin [Fri, 11 Jan 2008 02:31:45 +0000 (18:31 -0800)]
reloc/a20.S: Add newline at end of file

12 years agoreloc: add code to force A20 enabled just in case...
H. Peter Anvin [Fri, 11 Jan 2008 02:30:07 +0000 (18:30 -0800)]
reloc: add code to force A20 enabled just in case...

12 years agoNBI: try to calculate a valid free area; ignore non-PROGBITS segments
H. Peter Anvin [Fri, 11 Jan 2008 01:56:56 +0000 (17:56 -0800)]
NBI: try to calculate a valid free area; ignore non-PROGBITS segments

NBI backend:
- try to pick a valid free area in low memory for the header.
- ignore segments other than PROGBITS segments.

12 years agoreloc.ld: whitespace cleanup
H. Peter Anvin [Tue, 8 Jan 2008 22:34:53 +0000 (14:34 -0800)]
reloc.ld: whitespace cleanup

12 years agoAlign the kernel to a 16-byte boundary
H. Peter Anvin [Tue, 8 Jan 2008 22:30:54 +0000 (14:30 -0800)]
Align the kernel to a 16-byte boundary

Align the kernel to a 16-byte boundary in the image.  This is meant to
improve copying performance.

12 years agoelf: Correct the merging code for differing alignment
H. Peter Anvin [Tue, 8 Jan 2008 22:30:26 +0000 (14:30 -0800)]
elf: Correct the merging code for differing alignment

Handle the case of unequal alignment (first.align > second.align) when
merging PHDRs.

12 years agoelf: Merge adjacent PHDRs if alignment and attributes match
H. Peter Anvin [Tue, 8 Jan 2008 22:27:03 +0000 (14:27 -0800)]
elf: Merge adjacent PHDRs if alignment and attributes match

Merge adjacent PHDRs (but *not* SHDRs!) if alignment and attributes
match appropriately.

12 years agoHandle alignment constraints if the backends support them
H. Peter Anvin [Tue, 8 Jan 2008 20:04:33 +0000 (12:04 -0800)]
Handle alignment constraints if the backends support them

Handle in-file alignment constraints if the backend supports them
(e.g. ELF.)

12 years agoReorder struct segment
H. Peter Anvin [Tue, 8 Jan 2008 01:14:52 +0000 (17:14 -0800)]
Reorder struct segment

Reorder struct segment to make more sense on 64-bit platforms.

12 years agosegment.h: change the "length" argument to a size_t
H. Peter Anvin [Tue, 8 Jan 2008 01:12:39 +0000 (17:12 -0800)]
segment.h: change the "length" argument to a size_t

Change the "length" argument to a size_t to make it easier to pass
around on 64-bit platforms.

12 years agoFactor out mapping/unmapping of files
H. Peter Anvin [Mon, 7 Jan 2008 04:37:48 +0000 (20:37 -0800)]
Factor out mapping/unmapping of files

Factor out file map/unmap; this will make porting to non-Unix
operating systems and/or support nonfile inputs easier.

12 years agofopen(..., "wb") to make ports to other operating systems easier
H. Peter Anvin [Mon, 7 Jan 2008 04:20:04 +0000 (20:20 -0800)]
fopen(..., "wb") to make ports to other operating systems easier

"wb" is the same as "w" for Unix, but for some other OSes it matter.
Right now the code isn't inherently portable (due to mmap()), but it
should be easy enough to port.

12 years agoSupport -o -, note what the defaults are
H. Peter Anvin [Sun, 6 Jan 2008 04:44:04 +0000 (20:44 -0800)]
Support -o -, note what the defaults are

12 years agoAdditional whitespace cleanup
H. Peter Anvin [Sun, 6 Jan 2008 04:41:31 +0000 (20:41 -0800)]
Additional whitespace cleanup

12 years agoAdd usage message
Marty Connor [Sun, 6 Jan 2008 04:40:46 +0000 (20:40 -0800)]
Add usage message

Add a usage message and -h/--help option

12 years agoReturn a meaningful return code; whitespace cleanup
H. Peter Anvin [Sun, 6 Jan 2008 04:38:27 +0000 (20:38 -0800)]
Return a meaningful return code; whitespace cleanup

12 years agoRemove unused xstrdup() function
H. Peter Anvin [Sun, 6 Jan 2008 04:32:23 +0000 (20:32 -0800)]
Remove unused xstrdup() function

12 years agoUse xmalloc, xcalloc, xasprintf
H. Peter Anvin [Sun, 6 Jan 2008 04:26:32 +0000 (20:26 -0800)]
Use xmalloc, xcalloc, xasprintf

Use xmalloc, xcalloc, xasprintf to handle out of memory errors.

12 years agoAdd error messages
H. Peter Anvin [Sun, 6 Jan 2008 04:16:56 +0000 (20:16 -0800)]
Add error messages

12 years agoRemove output routine from the reloc program, making it smaller
H. Peter Anvin [Sat, 5 Jan 2008 00:28:36 +0000 (16:28 -0800)]
Remove output routine from the reloc program, making it smaller

Save a fair bit of space in the reloc program by omitting the console
output routine and printf code.  They were useful for debugging, though.

12 years agoSort segments when outputting NBI
H. Peter Anvin [Sat, 5 Jan 2008 00:26:28 +0000 (16:26 -0800)]
Sort segments when outputting NBI

12 years agoHandle mem= and vga= in the Linux kernel command line.
H. Peter Anvin [Sat, 5 Jan 2008 00:24:47 +0000 (16:24 -0800)]
Handle mem= and vga= in the Linux kernel command line.

12 years agoAdd NBI support
H. Peter Anvin [Fri, 4 Jan 2008 22:48:56 +0000 (14:48 -0800)]
Add NBI support

12 years agoSort segments before emitting them
H. Peter Anvin [Fri, 4 Jan 2008 21:03:20 +0000 (13:03 -0800)]
Sort segments before emitting them

Sort segments in address order, to be nice to the loader.
Furthermore, this paves way for eventually issuing single PHDRs for
adjacent sections.

12 years agoCleaner memory map; avoid < 64K; handle older kernels
H. Peter Anvin [Fri, 4 Jan 2008 20:51:01 +0000 (12:51 -0800)]
Cleaner memory map; avoid < 64K; handle older kernels

Clean up the memory map by making the startup info part of the reloc
segment; this also allows it to be easily prepopulated.

Avoid using < 64K by putting the reloc between the setup and cmdline,
with proper guarding for overflow.

Handle older kernel protocols, and zImage kernels.

12 years agoInitial commit: functional for newer bzImage kernels
H. Peter Anvin [Fri, 4 Jan 2008 05:54:24 +0000 (21:54 -0800)]
Initial commit: functional for newer bzImage kernels