ELFWRAP(1)ELFWRAP(1)NAMEelfwrap - wrap data in an ELF file
SYNOPSISelfwrap [-64] [-o relobj-file] [-z target=sparc | x86]
data-file...
DESCRIPTION
The elfwrap utility creates an ELF relocatable object file from one or
more data files. The relocatable object encapsulates each data file
within an individual section, together with symbols that can be used to
reference the section. The relocatable object is appropriate for inclu‐
sion with a subsequent link-edit. Users can reference the encapsulated
data using the associated symbols.
By default, a 32-bit ELF relocatable object is created that is appro‐
priate for the machine on which elfwrap is executed. The -64 option can
be used to create a 64-bit ELF relocatable object. The -z target option
can be used to create a relocatable object for a specific machine type.
Note -
Any data encapsulated with elfwrap must be in a format appropriate
for the destination target.
By default, the relocatable object a.wrap.o is created. The -o option
can be used to specify an alternative relocatable object name.
The basename(1) of each data file is used to create various pieces of
ELF information. For example, if the input data file is ISV/isv-data,
the following ELF information is created within the relocatable object.
An ELF section named .isv-data
This section contains the entire contents of the input data file.
An ELF symbol named isv-data_start
This symbol reflects the starting address of the .isv-data section.
An ELF symbol named isv-data_end
This symbol reflects the address of the first location after the
.isv-data section.
OPTIONS
The following options are supported:
-64
Create a 64-bit ELF relocatable object.
-o relobj-file
Produce a relocatable object that is named relobj-file.
-z target=sparc | x86
Specifies the machine type for the output relocatable object. Sup‐
ported targets are sparc and x86. The 32-bit machine type for the
specified target is used unless the -64 option is also present, in
which case the corresponding 64-bit machine type is used. By
default, the relocatable object that is generated is 32-bit for the
machine one which elfwrap is executed.
EXAMPLES
The following example encapsulates the system passwd file and the sys‐
tem group file within a relocatable object passgroup.o.
example% elfwrap-o passgroup.o /etc/passwd /etc/group
example% elfdump -s passgroup.o | egrep "passwd|group"
[2] 0x00000000 0x00000000 SECT LOCL D 0 .passwd
[3] 0x00000000 0x00000000 SECT LOCL D 0 .group
[7] 0x00000000 0x000002f0 OBJT GLOB D 0 .passwd passwd_start
[8] 0x000002f0 0x00000000 OBJT GLOB D 0 .passwd passwd_end
[9] 0x00000000 0x00000121 OBJT GLOB D 0 .group group_start
[10] 0x00000121 0x00000000 OBJT GLOB D 0 .group group_end
example% strings -N.passwd passgroup.o | head -1
root:x:0:0:Super-User:/:/sbin/sh
example% strings -N.group passgroup.o | head -1
root::0:
This relocatable object can be referenced from the following user code.
example% cat main.c
#include <stdio.h>
extern char passwd_start, passwd_end;
void main()
{
char *pstart = &passwd_start, *pend = &passwd_end;
char *str, *lstr;
for (lstr = str = pstart; str < pend; str++) {
if ((*str == '\n') && (str != (pend - 1))) {
(void) printf("%.*s", (++str - lstr), lstr);
lstr = str;
}
}
}
example% cc -o main main.c passgroup.o
example% ./main
root:x:0:0:Super-User:/:/sbin/sh
....
nobody4:x:65534:65534:SunOS 4.x NFS Anonymous Access User:/:
FILES
a.wrap.o
The default relocatable object file created.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
┌────────────────────┬─────────────────┐
│ ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
├────────────────────┼─────────────────┤
│Interface Stability │ Committed │
└────────────────────┴─────────────────┘
SEE ALSOelfdump(1), ld(1), strings(1), elf(3ELF), attributes(5), ddi_mod‐
open(9F)
Linker and Libraries Guide
Sep 10, 2013 ELFWRAP(1)