- Community Home
- >
- Servers and Operating Systems
- >
- Operating Systems
- >
- Operating System - HP-UX
- >
- Re: HP cc compiler for assembly
Categories
Company
Local Language
Forums
Discussions
Forums
- Data Protection and Retention
- Entry Storage Systems
- Legacy
- Midrange and Enterprise Storage
- Storage Networking
- HPE Nimble Storage
Discussions
Discussions
Discussions
Discussions
Forums
Forums
Discussions
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
- BladeSystem Infrastructure and Application Solutions
- Appliance Servers
- Alpha Servers
- BackOffice Products
- Internet Products
- HPE 9000 and HPE e3000 Servers
- Networking
- Netservers
- Secure OS Software for Linux
- Server Management (Insight Manager 7)
- Windows Server 2003
- Operating System - Tru64 Unix
- ProLiant Deployment and Provisioning
- Linux-Based Community / Regional
- Microsoft System Center Integration
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Community
Resources
Forums
Blogs
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО05-06-2022 02:12 AM - last edited on тАО05-07-2022 10:47 AM by support_s
тАО05-06-2022 02:12 AM - last edited on тАО05-07-2022 10:47 AM by support_s
HP cc compiler for assembly
Hello,
I hope this was not asked before -- I was unable to find any relevant information, neither on the cc manual or online.
I have an issue with HP-UX cc compiler and assembly code.
The command line succeed, but does not generate any output. I think I know the reason, but it bothers me and I'm trying to find a workaround.
Here is the command line (simplified): cc -c -o foo.o foo.s
Like this, it works smoothly. However, if I rename foo.s to foo.S or foo.sx, it does not.
The .s extension indicate pure assembly. The .S or .sx extension are for assembly with macro (#define for instance)
On other OS (linux-ia64 with gcc), if I try to compile a .s file with macro, it fails (macro are not handled, gcc works as expected). If I compile it as a .S or .sx, it works fine.
On HPUX, it *only* works with .s file !
Is there a way (a cc option, or maybe an update ?) to handle .S / .sx file with cc ?
Current cc version is cc: HP C/aC++ B3910B A.06.20 [May 13 2008]
I know it's old... But it seems we were unable to update for some reason I don't know about (I'm not an hp-ux admin, just a user). If a more recent cc version fixes it, I'm okay with it.
Test program :
#define ADDP add
.text
ADDP r27=4,r35
On linux-ia64 :
gcc -c foo.s => failure
gcc -c foo.S / gcc -c foo.sx => success
On hpux-ia64 :
cc -c foo.s => success
gcc -c foo.S / gcc -c foo.sx : return code 0, but no .o generated
Regards,
Robin
- Tags:
- Operating System
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО05-07-2022 06:19 AM
тАО05-07-2022 06:19 AM
Re: HP cc compiler for assembly
> Current cc version is cc: HP C/aC++ B3910B A.06.20 [May 13 2008]
On what?
uname -a
> [...] If a more recent cc version fixes it, I'm okay with it.
But is HP[E] "okay with it"? If you have a support contract, then
I'd ask HP[E]. If not, then I don't know how you'd get a newer
compiler.
I haven't written anything in assembly language since an 1132 printer
driver for the IBM 1130, so I know nothing, but...
> On other OS (linux-ia64 with gcc), [...]
If GCC does what you want, then I might investigate GCC on HP-UX. I
use it on my (old) HP-UX systems.
If there's some requirement to use the HP[E] C compiler, then I might
try writing my own shell script to run a source file through "cpp", and
present the result to the lame C compiler. Some adjustment to the build
procedure (like, say, a new "make" rule) might be needed/helpful for
that.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО05-07-2022 10:45 AM
тАО05-07-2022 10:45 AM
Re: HP cc compiler for assembly
I got this issue on two HP-UX (both PA-RISC an ia64)
HP-UX hpx33 B.11.31 U 9000/800 417101946 unlimited-user license
HP-UX hpx34 B.11.31 U ia64 0128802988 unlimited-user license
The issue is not the OS, but the compiler itself.
What I meant was not "I am going to update", just "is that a compiler issue that occured on old version and is now fixed". If it's fixed on newer OS, I won't look any further and check if we can have an up-to-date compiler.
I know it works with gcc, but we'd like to stick with the native compiler. And if it was only for a "personal" project, I'd have no issue with modifying it. But it's for an open source library, and I'm not familiar enough with the project architecture. I opened an issue and they might be working on it, but, once again, if a newer compiler does the trick, they should not bother with old, broken version. A "simple" fix would be to have the file named "foo.S" on all OSes, except for HP-UX where it should be named "foo.s". Or with a build option (because if you build the library on HP-UX with gcc, it *must* be named foo.S and not foo.s... It's just the HP native that is silly
If you have access to a newer version of the compiler, you can just do the test I proposed and tell me whether or not it works, that would already be helpful.
Thanks for your answer.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО05-07-2022 06:37 PM
тАО05-07-2022 06:37 PM
Re: HP cc compiler for assembly
> The issue is not the OS, but the compiler itself.
I'd guess that not all compiler versions are available for all HP-UX
versions, and, with my weak psychic powers, I couldn't tell if your OS
dated from 2008, too.
> I know it works with gcc, but we'd like to stick with the native
> compiler. [...]
Why? Because it works so well for everything you do?
> [...] A "simple" fix would be to have the file named "foo.S" on all
> OSes, except for HP-UX [...]
Not how I'd deal with it. Especially considering that there may be
GCC users on HP-UX who don't need the "help".
> [...] It's just the HP native that is silly )
The HP[E] compiler may be old and/or lame. But, if all it lacks is
the ability to run a ".[sS]" file through its "cpp", then I'd work on
that shell script, and do the build with "CC=my_cc_script". It's not
obvious to me that any other changes to your (unspecified) "an open
source library" would be needed.
> If you have access to a newer version of the compiler, [...]
I'm a mere hobbyist/peon, with no access to any HP[E] C compilers
beyond the (crippled) "bundled" compiler which comes with the OS. As I
said, I use GCC. If I wanted info on the current HP[E] compiler, then
I might consult the current documentation, or ask HPE. Or wait for
advice from the better informed.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО05-08-2022 07:12 AM
тАО05-08-2022 07:12 AM
Re: HP cc compiler for assembly
> I'd guess that not all compiler versions are available for all HP-UX
versions, and, with my weak psychic powers, I couldn't tell if your OS
dated from 2008, too.
Have you got to be that passive / agressive ?
> Why? Because it works so well for everything you do?
I don't want to use gcc because I don't want additional dependency, and because we have a lot of libraries built with HP-UX cc, which are not compatible with gcc.
I am just asking "is that fixed in newer cc version or is there a workaround with cc". If your solution is "change the OS", "change the compiler" or something like that, why bother to answer ?
> Not how I'd deal with it. Especially considering that there may be
GCC users on HP-UX who don't need the "help".
Exactly what I explained in my last post.
> The HP[E] compiler may be old and/or lame. But, if all it lacks is
the ability to run a ".[sS]" file through its "cpp", then I'd work on
that shell script, and do the build with "CC=my_cc_script". It's not
obvious to me that any other changes to your (unspecified) "an open
source library" would be needed.
If you want, I can tell : it's OpenSSL. If you don't ask, I won't tell, because it's not relevant here. That's why my question was "Is there a way (a cc option, or maybe an update ?) to handle .S / .sx file with cc ?"
And not "is there a way I can compile a .S file on HP-UX". Using a script might be an idea, but it's more of a dirty workaround (because it will come down to "cp foo.S foo.s ; cc foo.s" instead of "cc foo.S"). Thus my original question.
> I'm a mere hobbyist/peon, with no access to any HP[E] C compilers
beyond the (crippled) "bundled" compiler which comes with the OS. As I
said, I use GCC. If I wanted info on the current HP[E] compiler, then
I might consult the current documentation, or ask HPE. Or wait for
advice from the better informed.
The bundled compiler is what I want. But you might have a newer version than me, or someone else might. The current documentation (that I know of) does not say anything about that. I can't ask HPE directly, because I have no access. I'll have to ask my IT departement to ask HPE, and it will be long and unpractical.
Thus the question here, because either someone have access to a newer cc version and can check, or someone already stumbled into this issue and found a not-so-documented option on cc to handle .S files. If not, I can look into the library more to find a way to change it (either with a build option, that can be chosen by the user during the configuration, or automatically detected on HP-UX with bundled compiler). I'm just not familiar enough with the library architecture to do it easily, and I don't want to do some changes that are irrelevant (if it's fixed in newer cc version, it would be a bad idea to do it on all HP-UX with the bundled compiler)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО05-08-2022 01:13 PM
тАО05-08-2022 01:13 PM
Re: HP cc compiler for assembly
> Have you got to be that passive / agressive ?
Do you need to hide so much obviously useful information?
> [...] we have a lot of libraries built with HP-UX cc, which are not
> compatible with gcc.
"not compatible" _how_? Lacking a real HP[E] compiler, and not
expecting the bundled compiler to work well, I don't do much mixing.
What, exactly, goes wrong?
> [...] If your solution is "change the OS", "change the compiler" or
> something like that, why bother to answer ?
I can't determine if there's a solution (or, as requested, "a
workaround") until I can make sense of the problem description. If I
were using GCC elsewhere, then I don't know why I wouldn't use GCC on
HP-UX. If you don't want to change _anything_, then why ask for "a
workaround"?
> Exactly what I explained in my last post.
What is?
> [...] Using a script might be an idea, but it's more of a dirty
> workaround [...]
You asked for "a workaround". I offered an idea for a workaround.
Define "dirty workaround".
> The bundled compiler is what I want. [...]
Another thing which you neglected to mention. Around here, for
example:
dyi# uname -a
HP-UX dyi B.11.31 U ia64 4235313755 unlimited-user license
dyi# cc --version
(Bundled) cc: HP C/aC++ B3910B A.06.12 [Oct 11 2006]
As usual, showing actual commands with their actual output can be
more helpful than your summary of what it all means.
It says "(Bundled)" for a reason. The bundled compiler was provided
to let the user build a kernel; it was not intended (or supported) for
general use. HP[E] sold/sells a real, not-intentionally-crippled
compiler for general use. People bought/buy it because it was more
useful than the bundled compiler. In the old days, the bundled compiler
was even more crippled:
dy# uname -a
HP-UX dy B.11.11 U 9000/785 2012616114 unlimited-user license
dy $ cc -o mdt mdt.c
(Bundled) cc: "mdt.c", line 10: error 1705: Function prototypes are an ANSI feature.
> [...] I opened an issue and they might be working on it, [...]
> [...] it's OpenSSL. [...]
Did you tell the OpenSSL folks that you were trying to use the
_bundled_ compiler? The usual advice for anyone reporting a missing
feature in the bundled compiler always was to buy a real compiler (or
use a free one).
> If you have access to a newer version of the compiler, [...]
As you can see, mine looks older than yours.
> [...] (if it's fixed in newer cc version, it would be a bad idea to do
> it on all HP-UX with the bundled compiler)
I'd expect that using the HP-UX bundled compiler for almost anything
(beyond its one purpose) would be a bad idea.
https://support.hpe.com/hpesc/public/docDisplay?docId=c02877344
The bundled cc compiler is only meant for use to regenerate the
kernel. It is not intended or supported for use with application
development and is not an Ansi compliant compiler.
(The "not an Ansi compliant compiler" bit might be left over from the
old days, when it obviously wasn't.)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО05-09-2022 12:27 AM
тАО05-09-2022 12:27 AM
Re: HP cc compiler for assembly
> Do you need to hide so much obviously useful information?
I didn't know it was "obviously useful", otherwise I would have given it. Like I did when you simply asked. You don't have to be unpleasant while asking.
> "not compatible" _how_? Lacking a real HP[E] compiler, and not
expecting the bundled compiler to work well, I don't do much mixing.
What, exactly, goes wrong?
Not compatible like any library built with gcc can't link with a library / an executable built with HP-UX cc.
> I can't determine if there's a solution (or, as requested, "a
workaround") until I can make sense of the problem description. If I
were using GCC elsewhere, then I don't know why I wouldn't use GCC on
HP-UX. If you don't want to change _anything_, then why ask for "a
workaround"?
As I explained in almost every post : I jsut want to know if the bundled compiler has a way to make it work ("a workaround", as "maybe an option to add", or "update to version XXX"). That is exactly what I want. I said it like that almost everytime, and I don't want to change anything else. I mean, it's a simple question.
> What is?
You were saying "there might be GCC user on HP-UX who don't need the help". That's exactly what I was also saying : "[...] with a build option (because if you build the library on HP-UX with gcc, it *must* be named foo.S and not foo.s... It's just the HP native that is silly )"
> You asked for "a workaround". I offered an idea for a workaround.
Define "dirty workaround".
I asked for a very specific thing : a workaround for the bundled compiler. I didn't ask for anything else. I know I can change the library to make it work, but it would be a lot of work. If a simple cc option exists, it's obviously way better. If using a newer cc version fixes it, it's also better -- and, moreover, it entirely change the fix to implement in the library.
> Another thing which you neglected to mention. Around here, for
example:
As per my first post :
Is there a way (a cc option, or maybe an update ?) to handle .S / .sx file with cc ?
Current cc version is cc: HP C/aC++ B3910B A.06.20 [May 13 2008]
And in my second post, I added the uname information.
I also added the commands :
cc -c foo.s => success
cc -c foo.S / cc -c foo.sx : return code 0, but no .o generated
What do you expect ? An output ? There is none, in all cases. What should I do ?
> Did you tell the OpenSSL folks that you were trying to use the
_bundled_ compiler? The usual advice for anyone reporting a missing
feature in the bundled compiler always was to buy a real compiler (or
use a free one).
I said I use HP cc compiler. Didn't know there was more than one. And, as it seems, they didn't as well. I worked fine with the previous OpenSSL version, which didn't use any .S files.
> As you can see, mine looks older than yours.
So you can't test, and don't know about a (maybe inexisting) option. Fine with me, thanks for your help, and for your time explaining other workarounds, but the cc update / option are the only one I want information about for now.
> I'd expect that using the HP-UX bundled compiler for almost anything
(beyond its one purpose) would be a bad idea.
Okay, I said "bundled" compiler before, because you said it. How do I check ? Because when I use "man cc", it tells nothing about bundled, or "only for kernel".
aCC invokes the HP-UX aC++ compiler. C++ source code is compiled
directly to object code. cc is the HP-UX C compiler. c89 is the
HP-UX ANSI-conforming C89 compiler. c99 is the HP-UX ANSI-conforming
C99 compiler. (If C or cc is mentioned below it usually means it
applies to all C drivers. c89/c99 do not support any -A* options.)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО05-09-2022 12:33 AM
тАО05-09-2022 12:33 AM
Re: HP cc compiler for assembly
Note :
my bad, I just noticed that, in my first post, I said that on hpux, the .S compilation failed with gcc. I meant "cc", not "gcc". It might induce error.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО05-09-2022 07:54 AM
тАО05-09-2022 07:54 AM
Re: HP cc compiler for assembly
> [...] I said "bundled" compiler before, because you said it. How do I
> check ? [...]
> dyi# cc --version
> (Bundled) cc: HP C/aC++ B3910B A.06.12 [Oct 11 2006]
>
> As usual, showing actual commands with their actual output can be
> more helpful than your summary of what it all means.
If you're _not_ using the "(Bundled)" compiler, then I'd return to my
original advice.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО05-09-2022 07:57 AM
тАО05-09-2022 07:57 AM
Re: HP cc compiler for assembly
Thanks for the information.
I didn't think having the command ("cc --version") would be useful to know what version it is, since I indicated :
Current cc version is cc: HP C/aC++ B3910B A.06.20 [May 13 2008]
I checked the documentation and did not find anything relevant, sadly. As I explained, I can't easily contact HPE directly. Thus the question here, for the community, hoping for someone using HP-UX cc compiler as well.
Once again, thanks for your time and clarification.