PGI User Forum
 SearchSearch   MemberlistMemberlist     RegisterRegister   ProfileProfile    Log inLog in 

CUDA-x86.

PGI Workstation x86_64 Interix/SUA - beginners questions
Goto page 1, 2, 3  Next
 
Post new topic   Reply to topic    PGI User Forum Forum Index -> Licenses and Installation
View previous topic :: View next topic  
Author Message
jerker_back



Joined: 30 Aug 2007
Posts: 10
Location: Sweden

PostPosted: Tue Sep 04, 2007 12:31 pm    Post subject: PGI Workstation x86_64 Interix/SUA - beginners questions Reply with quote

Greeetings all,
As an Interix user on x64 I was excited to hear about PGIs compiler. At the moment there is only one other compiler available AFAIK. I downloaded an evaluation version for x64 SUA and installed it. Unfortunatly the installer failed due to wrong permissions applied to the installed directories (it removed all permissions). After some tweaks and a couple of reinstallations, I managed to get it right (I think). It would be advisable to update the installer, it really needs to be fool-proof. The 2 weeks evaluation period is also far too short.

When I did my first test compile I run into a bug: The -largeaddressaware:no linker switch needs to be added to ldrc(121).

When compiling e.g. test compile of GNU make I get some strange warnings:
Code:
PGC-W-0114-More than one type specified (/opt/pgi/sua64/7.0-6/include/sys/types.h: 143)
PGC-W-0143-Useless typedef declaration (no declarators present) (/opt/pgi/sua64/7.0-6/include/sys/types.h: 143)
PGC-W-0115-Duplicate standard type (/opt/pgi/sua64/7.0-6/include/sys/types.h: 148)
PGC-W-0143-Useless typedef declaration (no declarators present) (/opt/pgi/sua64/7.0-6/include/sys/types.h: 148)
PGC-W-0114-More than one type specified (/opt/pgi/sua64/7.0-6/include/sys/types.h: 256)
PGC-W-0143-Useless typedef declaration (no declarators present) (/opt/pgi/sua64/7.0-6/include/sys/types.h: 256)

I can't figure out why.

The compiler includes the Interix gcc.3.3 x86 headers and libs - are you sure this is right?

What about gcc shared libraries? Are they supported in x64 and if so, how to enable, create and use them? Since the linker ultimately is the MS x64 linker, it would be interesting to hear if you have found a solution of this.

Thanks
Jerker
Back to top
View user's profile
jerker_back



Joined: 30 Aug 2007
Posts: 10
Location: Sweden

PostPosted: Wed Sep 05, 2007 8:57 am    Post subject: Reply with quote

Seems like noone is monitoring ... anyway

sys/types.h(143) => typedef u_int32_t uid_t;
which expands to
typedef unsigned int u_int32_t;
pgcc appears to choke on typedefs on typedefs? This behavior causes pgcc to fail some configure scripts resulting in wrong configuration. Is there any switches that need to be assigned?

I concluded that shared libraries are not supported in Interix by PGI.
Back to top
View user's profile
mkcolg



Joined: 30 Jun 2004
Posts: 5952
Location: The Portland Group Inc.

PostPosted: Wed Sep 05, 2007 10:55 am    Post subject: Reply with quote

Hi Jerker,
Quote:
Unfortunatly the installer failed due to wrong permissions applied to the installed directories (it removed all permissions).

I'll pass this on.
Quote:
The 2 weeks evaluation period is also far too short.

Please contact PGI Sales at sales@pgroup.com. They can usually extend this for you.
Quote:
When I did my first test compile I run into a bug: The -largeaddressaware:no linker switch needs to be added to ldrc(121).
Can you please describe the bug?
Code:
When compiling e.g. test compile of GNU make I get some strange warnings:

It appears to me that for these messages that "uid_t" might be getting declared elsewhere. However, I'm unable to recreate the issue here so am not positive. What include files are you using? What command line arguments are you using?
Quote:
The compiler includes the Interix gcc.3.3 x86 headers and libs - are you sure this is right?
Yes. A few of GNU header files are not interoperable with PGI compilers and needed to be rewritten. However, we do try to keep the header files as close to the original version as possible.
Quote:
What about gcc shared libraries? Are they supported in x64 and if so, how to enable, create and use them? Since the linker ultimately is the MS x64 linker, it would be interesting to hear if you have found a solution of this.

We have been working closely with Microsoft on creating a linker which will be able to create shared libraries on 32-bit SFU. This linker will be available with the 7.0-7 release. Prior releases and 64-bit SUA do not support GNU style shared libraries.

- Mat
Back to top
View user's profile
jerker_back



Joined: 30 Aug 2007
Posts: 10
Location: Sweden

PostPosted: Wed Sep 05, 2007 12:30 pm    Post subject: Reply with quote

Quote:
I appears to me that for these messages that "uid_t" might be getting declared elsewhere. However, I'm unable to recreate the issue here so am not positive. What include files are you using? What command line arguments are you using?

It did that to me to as well, so I checked the Interix SDK headers. Some defines are guarded with __GNUC__ and _MSC_VER - quite unnecessary actually - so I unified them and removed the compiler conditionals. That is: First part of types.h, inttypes.h where int64_t and friends are defined. There is no duplicate uid_t define, but there are exact duplicates of other defines in the headers, of size_t for example. My stdint.h is edited to pass the autoconf C99 test (carefully done!). There could be some detail inflicted by me somewhere causing the problem, one never know. However, gcc, icl and the MS compiler have no problem.

It seems to me that pgcc have problems with typedefs like this:
typedef unsigned long long int uint64_t;

I was thinking there could be a switch like "enable ANSI C"-whatever missing.

Typical commandline : pgcc -O1 -D_ALL_SOURCE -o testapp testapp.c
Quote:
Can you please describe the bug?

I don't remember exactly what the message was, but the linker complains about "ADDR32" conversion without this switch in the PGI libraries and refuse to link. I'm using the MS x64 linker 8.00.50727.762 (VS2005 SP1).
Quote:
7.0-7 release for SUA

Something to look forward to, I think! So, will this release have a GNU-style ld or a MS linker interface?
Back to top
View user's profile
mkcolg



Joined: 30 Jun 2004
Posts: 5952
Location: The Portland Group Inc.

PostPosted: Wed Sep 05, 2007 1:38 pm    Post subject: Reply with quote

Hi Jerker,

While it does sound like you know what you're doing, modifying system include files is generally not a good idea. Unfortunately, I don't have any good advice for you except to try it with the original headers. Note that these are just warnings so may be ignored. However, I leave this up to you.
Quote:

It seems to me that pgcc have problems with typedefs like this:
typedef unsigned long long int uint64_t;

Can you please give an example of the problem you see? The following toy program is able to handle this typedef without any issue.
Code:
%cat myt.c
typedef unsigned long long int uint64_t;
typedef uint64_t myi64_t;
void main () {
   myi64_t i;
   i = 123123123;
   printf("%ld\n", i);
}
%pgcc myt.c
%./a.out
123123123

Quote:
I was thinking there could be a switch like "enable ANSI C"-whatever missing.
Can you please clarify?
Quote:

I don't remember exactly what the message was, but the linker complains about "ADDR32" conversion without this switch in the PGI libraries and refuse to link.

Where you trying to use the generated objects in a DLL? If so, then this is not yet supported for 64-bit SUA. You may consider using the PGI Windows compilers which do support DLL creation.
Quote:
Something to look forward to, I think! So, will this release have a GNU-style ld or a MS linker interface?

The 32-bit SUA/SFU compilers will use a GNU-style linker while the 64-bit SUA compilers will use MS link.

- Mat
Back to top
View user's profile
Display posts from previous:   
Post new topic   Reply to topic    PGI User Forum Forum Index -> Licenses and Installation All times are GMT - 7 Hours
Goto page 1, 2, 3  Next
Page 1 of 3

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © phpBB Group