Assembling GNU Assembler Files

The GCC compilers for Linux for S/390 and zSeries produce an intermediate assembler file that is normally automatically assembled by the GNU assembler, as. The assembler statement format produced by GCC is not HLASM compatible and so cannot normally be assembled by the Tachyon z/Assembler.

Using the output from GCC

The PROCESS(GAS) option causes the Tachyon z/Assembler to translate the input file from GNU assembler format to HLASM format prior to assembling the statements. This allows the Tachyon z/Assembler to assemble the output of the GCC compilers.

Normally, the GCC compilers automatically invoke the GNU assembler and then delete the intermediate assembler file. The -S option instructs the GCC compiler to retain the assembler file and to not invoke the assembler nor produce an object file. For instance, if you compile the program hello.c using the following command: gcc -S hello.c, the hello.s file will be created and will contain GNU assembler statements. This file can in turn be assembled by the Tachyon z/Assembler using the PROCESS(GAS) option.

Using the x390 or txa programs with the PROCESS(GAS) option requires a license for the Tachyon z/Assembler. This page describes use of the PROCESS(GAS) option with these programs. You can also assemble GNU assembler programs using the tas program as described in Appendix F. You do not need to purchase a license from Tachyon Software to use the tas program.

Assembler Options

The PROCESS(GAS) option is ignored unless the either the OBJECT(ELF) or OBJECT(GOFF) option is also set. Because the assembler code generated by the GCC compiler does not use macros, DSECTs or USINGs, the PROCESS(GAS) option disables all macro processing, DSECTs and USINGs and causes the following options to be ignored and not included in the Option Summary of the assembly listing:
ACONTROL The ACONTROL option is forced to AFPR,NOALIGN,NOLIBMAC. Any other settings are ignored.
COMPAT The COMPAT option is completely ignored.
DXREF The DXREF option is completely ignored.
FLAG The following FLAG options are ignored: EXLITW, HLASM, RECORD, PUSH, RENT, SUBSTR, USING0, USINGDUP, USINGMULT and USINGZERO.
LIBEXIT The LIBEXIT option is completely ignored.
MXREF The MXREF option is completely ignored.
PCONTROL The PCONTROL option is completely ignored.
PROFILE The PROFILE option is completely ignored.
PROCESS The following PROCESS options are ignored: BATCH, CICS, DBCS, DLI, JCL and SQL.
SYSLIB The SYSLIB option is completely ignored, as is the X390LIB environment variable.
USINGLIMIT The USINGLIMIT option is completely ignored.
USINGMAP The USINGMAP option is completely ignored.
Also, other options are changed by the OBJECT(ELF) setting.

The TERM(NOPREFIX) option should be set since the line numbers associated with any errors will reflect the translated source lines, not the original GNU assembler source lines. For this reason, the PROCESS(GAS) option is not supported by the T.I.D.E. Windows GUI. Syntax errors or statements that are not understood in the GNU assembler source will cause message TXA180E to be generated.

The GNU assembler code generated by GCC does not contain any indication if the target operating system is Linux for S/390 (31-bit) or Linux for zSeries (64-bit). The Tachyon z/Assembler uses the OPTABLE option setting to determine if 31-bit or 64-bit code is to be generated. If OPTABLE(ZOP), OPTABLE(YOP) or OPTABLE(ZS3) is set, the GNU assembler code is assumed to be generated by Linux S/390 and zSeries version of GCC using the -m64 option and 64-bit code will be generated. If the OPTABLE option is set to any other value, or defaulted to OPTABLE(UNI), the GNU assembler code is assumed to be generated by the Linux for S/390 version of GCC without the -m64 option and 31-bit code will be generated. Due to limitations of GOFF, the assembler will produce error messages if you attempt to use the OBJECT(GOFF) option to assemble GNU assembler code generated by GCC with the -m64 option

Only one source file can be specified on the x390 command line. If you want to assemble more than one GNU assembler source file using a single command, you can specify multiple file names on the txa command line. The GNU assembler soure file may be piped to the x390 program.

Compatibility

The Tachyon z/Assembler’s GNU assembler to HLASM translator can convert a large subset of the GNU assembler language, including code generated by GCC from C language programs. Due to current limitations on section names in the ELF support of the Tachyon z/Assembler, the code generated by GCC from C++ programs cannot be assembled. The GNU assembler to HLASM translator cannot convert code generated by the gcc -fpic or -fPIC options.

Unlike normal input files read by the Tachyon z/Assembler, GNU assembler source files must consist of delimited ASCII lines.


Frames No Frames Previous Next Contents
Introduction Setup Running Options Macros Translation Compatibility Messages
© Copyright 1999-2006, Tachyon Software® LLC.
Last modified on May 25, 2006