This portal is to open public enhancement requests against IBM Z Software products. To view all of your ideas submitted to IBM, create and manage groups of Ideas, or create an idea explicitly set to be either visible by all (public) or visible only to you and IBM (private), use the IBM Unified Ideas Portal (https://ideas.ibm.com).
We invite you to shape the future of IBM, including product roadmaps, by submitting ideas that matter to you the most. Here's how it works:
Start by searching and reviewing ideas and requests to enhance a product or service. Take a look at ideas others have posted, and add a comment, vote, or subscribe to updates on them if they matter to you. If you can't find what you are looking for,
Post an idea.
Get feedback from the IBM team and other customers to refine your idea.
Follow the idea through the IBM Ideas process.
Welcome to the IBM Ideas Portal (https://www.ibm.com/ideas) - Use this site to find out additional information and details about the IBM Ideas process and statuses.
IBM Unified Ideas Portal (https://ideas.ibm.com) - Use this site to view all of your ideas, create new ideas for any IBM product, or search for ideas across all of IBM.
ideasibm@us.ibm.com - Use this email to suggest enhancements to the Ideas process or request help from IBM for submitting your Ideas.
The alternative macro solution seems to be usable. A further refinement is that if the address constant refers to an external symbol within the same assembly (in particular a CSECT name) then that name cannot be specified on an ALIAS statement. It is possible to check for this automatically in the macro by testing the type attribute of the target name and simply use an A-type address constant in that case.
As we have confirmed that the required function can be implemented in a reasonably practical way using the existing assembler language, there appears to be insufficient justification for the research, design and implementation work needed to extend the Assembler language to handle this function directly in the near future. We have however recorded the suggestion for future consideration, perhaps in the form of an extension to the WXTRN statement syntax to allow specification of external names.
We still think the ALIAS method should work for you; perhaps we didn't explain it clearly.
The idea is that the internal name is not used for any purpose except as a unique identifier to declare the real weak external name without conflicting with any internal declaration that uses the same name. It would typically be generated using &SYSNDX (but currently still has to be valid as an external name at the time it is declared, so is limited to a maximum of 8 characters when not using GOFF). So you could for example have a WCON macro that generates something like the following:
WCON EXTNAME
+ WXTRN WX0001
+WX0001 ALIAS C'EXTNAME'
+ DC A(WX0001)
This would generate a weak external address constant for EXTNAME without conflicting with any internal symbol of the same name, so it is functionally very similar to your proposed W-type address constant. If it is possible that the same constant might be needed more than once, the macro would need to remember that EXTNAME has already been used (for example using a global created SETC symbol) and use the same internal name again, without the WXTRN.
If we have missed something, please can you clarify?
Hi,
No, sorry the alternative does not solve our problem. We do not need to create an external name that does not match the internal name, in fact quite the opposite. We absolutely require that the internal and external names match. The identical names approach we are currently using does work, but leaves us with unresolved external references on some links. "Weakening" the external references was something we wished to do so that we and our customers would not have to always research the unresolved references to ensure that they were not actually errors. Because it is not possible to use WXTRN statements to accomplish this, we were hoping that HLASM might provide a new, weak external ADCON type.
This has been on our suggestion list since the 1980s. However, there are other ways of getting round this problem, so it has not been considered a high priority.
In particular, the ALIAS statement can be used so that the internal name does not need to match the external name.
For example:
WXTRN EXTNAME
DC A(EXTNAME)
can be replaced with:
WXTRN WX1
WX1 ALIAS C'EXTNAME'
DC A(WX1)
Is this alternative solution workable for you?