IBM Z and LinuxONE IBM Z

 View Only

 Cannot link 64-bit HLASM at the USS command line

Daniel Moore's profile image
Daniel Moore posted Fri October 17, 2025 12:00 PM

I have a dev team that is more comfortable at the UNIX command line than submitting JCL, so I'm trying to make the whole process work using "make" and the like.  

The "as" command works fine on this 64 bit assembler module, but when I try to link it using "ld" I get:

 IEW2457E 9208 SYMBOL CELQSTRT UNRESOLVED.  NO CALL LIBRARY SPECIFIED.

I've tried various incantations of the "-L" option:

-L"''CEE.SCEEBND2'"

-L"'//'CEE.SCEEBND2'"

and other random typing, but nothing has worked.  

I might have a fundamental misunderstanding here.

Has anyone made a 64 bit HLASM program build an executable at the USS command line?

Diego Cardalliaguet's profile image
Diego Cardalliaguet

Hi Daniel, 

Have you tried exporting the libraries in the profile of the user that is going to linkedit?

export STEPLIB=$STEPLIB:CEE.SCEEBND2  

On the other hand, documentation says that you need to set up an env variable to use the -S option: _LD_SYSLIB, where you have to list the libraries needed. 

Please, let us know the result.

Regards. 

Christopher Parker's profile image
Christopher Parker

Hi Daniel,

We have a build process that is dependent on being able to perform our links as part of a makefile on USS.  I was not successful attempting to link specifying MVS datasets for the includes through the ld command.  I had to turn it into a tso call to the linkage editor.  Each of the DDs are defined within environment variables and the USS 'tso' command is used.

Chris

Daniel Moore's profile image
Daniel Moore

Thanks for those suggestions. 

I fooled around with it a bit after I got back from vacation. 

In the end, I used the full path to the metal headers, such as:

#include "/usr/include/metal/metal.h"

Not optimal, but functional. 

I'll have to return to this someday and learn more about the way that the options file works.  I think that file is where I'd tailor this for each developer, but right now just building a proof-of-concept for something else. 

Daniel Moore's profile image
Daniel Moore

Actually, came across the solution:

xlc -qnosearch -I /usr/include/metal -qmetal -S helloworld.c

This produces the ".s" file that I can assemble.