-W<phase>
The -W<phase> option specifies options to be passed to the steps associated with the assemble, compile, or link phases of the compilation. The following -W<phase> options need to be considered for migration.
-Wa
-Wa passes the comma separated arguments to the assembler.
In z/OS® XL C/C++, the c89 or xlc command invokes the HLASM assembler to produce object files. The argument of -Wa are in HLASM MVS options syntax.
Open XL C/C++ for z/OS invokes the integrated assembler by default, which knows a subset of the HLASM language for assembly file input. The integrated assembler ignore the -Wa option. To invoke the as utility, which invokes the HLASM assembler, you must specify -fno-integrated-as and can use the -Wa,<arg>,<arg2>... option to pass the comma separated arguments to the as utility. The argument of -Wa are in as options syntax.
When migrating from z/OS XL C/C++ to Open XL C/C++ for z/OS, the <arg> argument to -Wa must be changed from the HLASM MVS options syntax to the as options syntax.
-Wl
-Wl passes the comma separated arguments to the binder.
z/OS XL C/C++ uses the binder to combine the object modules, load modules, and program objects to comprise an application. The binder is invoked by the compiler by default.
Open XL C/C++ for z/OS uses the ld utility to invoke the binder. You can use the -Wl,<arg>,<arg2>... option to pass the comma-separated arguments to the ld utility.
When migrating from z/OS XL C/C++ to Open XL C/C++ for z/OS, the <arg> argument to -Wl must be changed from the binder MVS options syntax to the ld options syntax.