Operating System - Linux
1748210 Members
2798 Online
108759 Solutions
New Discussion юеВ

Re: Building Mozilla LDAP SDK

 
Weltman, Ulf
Valued Contributor

Re: Building Mozilla LDAP SDK

Which version of the LDAP SDK, NSPR, and NSS are you trying to build?

The free product LDAP-UX Integration delivers a pre-built Mozilla LDAP SDK and its dependencies. It's supported by HP and includes the header files for development. LDAP-UX 4.0 bundles LDAP SDK 5.14.1 and LDAP-UX 4.1x bundles LDAP SDK 5.17.1.
http://h20392.www2.hp.com/portal/swdepot/displayProductInfo.do?productNumber=J4269AA
Steve_The_King
Frequent Advisor

Re: Building Mozilla LDAP SDK

Below is the output I got after building my code with the above mentioned flags.

I found some ^A and ^C characters. Any Idea what are they ???

^Aextern __declspec(export) PRInt32^BNSPR_API(PRInt32)^C PR_AtomicIncrement(PRInt32 *val);
James R. Ferguson
Acclaimed Contributor

Re: Building Mozilla LDAP SDK

Hi (again):

> I found some ^A and ^C characters. Any Idea what are they ???

The ^A would be a SHO (Start-of-Header) and the ^C would be an ETX (End-of-Text).

You will find the 'ascii(5)' manpages useful.

Regards!

...JRF...
Steve_The_King
Frequent Advisor

Re: Building Mozilla LDAP SDK

There are ^C characters at the start of #define statements and also some ^B characters. What do these mean. Again what are 'ascii(5)' manpages. Please let me know.

And how do I now proceed with my compilation.
James R. Ferguson
Acclaimed Contributor

Re: Building Mozilla LDAP SDK

Hi (again):

> There are ^C characters at the start of #define statements and also some ^B characters. What do these mean. Again what are 'ascii(5)' manpages. Please let me know.

The characters should not be present. However you propagated the file to the platform on which you see these characters must have introduced them.

# man 5 ascii

...or:

http://docs.hp.com/en/B2355-60105/ascii.5.html

Regards!

...JRF...
Dennis Handly
Acclaimed Contributor

Re: Building Mozilla LDAP SDK

>I found some ^A and ^C characters. Any idea what are they???
^Aextern __declspec(export) PRInt32^BNSPR_API(PRInt32)^C

These are how the preprocessing static analysis info is passed to the compiler. The text between ^A and ^B is the macro expansion and the text between ^B and ^C is the macro.

So the macro NSPR_API is broken. It should be either:
#define NSPR_API(X) extern __declspec(dllexport) X
or:
#define NSPR_API(X) extern X

>And how do I now proceed with my compilation.

You need to find where NSPR_API is defined and see if there are some -Ds that make it work for HP-UX, or you need to fix it.

>JRF: You will find the 'ascii(5)' manpages useful.
>The characters should not be present.

Not in this case.
Of course they should. Steve did what I wanted. This is how you debug evil macro problems.
Steve_The_King
Frequent Advisor

Re: Building Mozilla LDAP SDK

I observered the following thing:-

While building with -Wp, -C, -G flags, if I redirect the output to a file I can see various ^C, ^B flags. But when the output is on standard output it seems fine . No ^C, ^B , ^A are found, so I guess this is fine.


But what next ??????
Dennis Handly
Acclaimed Contributor

Re: Building Mozilla LDAP SDK

>I observed the following thing:
>While building with -Wp, -C, -G flags, if I redirect the output to a file I can see various ^C, ^B flags.

You (or more correctly I) want to see them.

>But what next?

I told you. You need to fix the NSPR_API macro. If you scan that -E output file you'll see where it is defined.

Then you find the .c or .h and look at that.
Of course there could be another macro that changes dllexport to export.

If you attach that -E output file, I can look at it. (You may have to gzip it.)
Steve_The_King
Frequent Advisor

Re: Building Mozilla LDAP SDK

here's file.txt with built with the specified macros
Dennis Handly
Acclaimed Contributor

Re: Building Mozilla LDAP SDK

>here's file.txt with built with the specified macros

Searching for NSPR_API shows it is line 202 in .../pr/include/prtypes.h. This macro uses PR_IMPORT.
Line 154 defines PR_IMPORT with the incorrect __declspec(export)

(You can stop right here and just change "export" to "dllexport".)

On line 80 there is:
#elif defined(XP_MAC)
This seems to be false because there are a bunch of skipped lines. 151 has a #else?

Perhaps you have mistakenly defined XP_MAC?
This seems to be defined if not defined in .../pr/src/md/mac/prcpucfg.h on line 36.
So I don't know why XP_MAC seems to be false?
Can you provide ../pr/include/prtypes.h?