GENASSYM(1)

GENASSYM(1) | General Commands Manual | GENASSYM(1)

# NAME

`genassym` —
emit an assym.h file

# SYNOPSIS

`genassym` | [`-c`] [`-f`] C compiler invocation

# DESCRIPTION

`genassym` is a shell script normally used during the kernel build process to create an assym.h file. This file defines a number of cpp constants derived from the configuration information `genassym` reads from stdin. The generated file is used by kernel sources written in assembler to gain access to information (e.g. structure offsets and sizes) normally only known to the C compiler.

Arguments to `genassym` are usually of the form ${CC} ${CFLAGS} ${CPPFLAGS} where ${CC} is the C compiler used to compile the kernel, while ${CFLAGS} and ${CPPFLAGS} are flag arguments to the C compiler. The script creates a C source file from its input. Then the C compiler is called according to the script's arguments to compile this file.

Normally `genassym` instructs the C compiler to create an assembler source from the constructed C source. The resulting file is then processed to extract the information needed to create the assym.h file. The `-c` flag instructs `genassym` to create slightly different code, generate an executable from this code and run it. In both cases the assym.h file is written to stdout. The `-f` flag instructs `genassym` to create forth code.

# DIAGNOSTICS

Either self-explanatory, or generated by one of the programs called from the script.

# SEE ALSO

genassym.cf(5)

# HISTORY

The `genassym` command appeared in NetBSD 1.3 as “genassym.sh” in /usr/src/sys/kern. It became a userland utility in NetBSD 4.0.

April 13, 2010 | NetBSD 9.5