doyle@ingr.com (Doyle Davidson) (05/04/90)
I am attempting to make libXaw.a a shared library under
SYSV 3.1 and I have hit a stumper. (I already got Xlib and Xt done)
My problem is that XtInheritTranslations is defined as:
externalref int _XtInheritTranslations;
#define XtInheritTranslations ((String) &_XtInheritTranslations)
and later used as:
BlahClassRec blahClassRec = {
...,
/* tm_table */ XtInheritTranslations,
...
Is the reason that is done as opposed to something like
#define XtInheritTranslations -1
so that the item is truly a data pointer to prevent problems
for certain architectures? And if so, does anyone see any problem
with me changing it for my libraries and binaries?
I can't import the address of an extern data item into my shared library
and place it in initialize data (see AsciiText.c)
Thanks in advance,
Doyle
-------------------------------
Doyle C. Davidson
Intergraph Corp.
Workstation Graphics Standards
1 Madison Industrial Park
Huntsville, AL 35806
(205) 730-2000
..!uunet!ingr!doyle
or doyle@ingr.com
-------------------------------swick@ATHENA.MIT.EDU (Ralph Swick) (05/08/90)
> externalref int _XtInheritTranslations; > #define XtInheritTranslations ((String) &_XtInheritTranslations) > ... > Is the reason that is done as opposed to something like > #define XtInheritTranslations -1 > so that the item is truly a data pointer to prevent problems > for certain architectures? Yes, and also because according to ANSI C there seems to be only one portable (integer) pointer constant with a defined value (0) and we need a second unique constant. > does anyone see any problem > with me changing it for my libraries and binaries? No problem; you're certainly allowed to use any architecture-specific knowledge you may have. Other small positive integers are probably preferable to -1 though.