Found it (I think) but i need people to test this, since it's late and i have to bike home in the rain.
I've looked at all the data in Hamei's post and the introduction of "suspend" in 3.6.41 struck a nerve a few days ago, because i remembered i got several warnings during compile of the more recent 3.8.78.
I also couldn't build 3.6.4x since it cannot find the function/command "unsetenv" at runtime. Strange, since it did work last week. I have more issues with the 3.6 branch since it wants to include /usr/lib and pollute my linker with o32 libraries
Anyway because of the grumpy behavior of my o200 today, i list some "suspend" compiler warnings here:
Code:
Select all
cc-1183 c99: WARNING File = events.c, Line = 516
An unsigned integer is being compared to zero.
if (xobjs.suspend >= 0) return;
And many many more. This was from 3.6.41, but 3.8.78 is also littered with those. Interesting to see that exactly the introduction of the suspend field in 3.6.41 in the
xobjs
struct causes the "phase change".
So what type is xobjs.suspend ? Answer is in xcircuit.h somewhere at the end:
Code:
Select all
u_short new_changes;
char suspend; /* suspend graphics updates if TRUE */
short numlibs;
short pages;
A char. Erm is it signed or unsigned? After some googling i found in
http://unix.derkeiler.com/Newsgroups/co ... /0424.html
Dr. David Kirkby wrote:
> Erik Max Francis wrote:
>
>>"Dr. David Kirkby" wrote:
>>
>>
>>>char foo;
>>>
>>>is asking for trouble, if you hope to put negative numbers in foo.
>>
>>Indeed. The Standard leaves it unspecified whether an unadorned char is
>>signed or unsigned.
>
>
> I've just confirmed that AIX and IRIX declare it unsigned, whereas
> Solaris, Linux, AIX, HP-UX, Tru64, NetBSD, OpenBSD all declare it
> signed. Although I've not had chance to fix the problem yet, I think
> that explains why my program for computing the properties of
> transmission lines
>
http://atlc.sourceforge.net/
> works on Solaris, Linux, AIX, HP-UX, Tru64, NetBSD, OpenBSD, but not
> on AIX or IRIX.
>
> At least fixing it should not be too hard - just needs a bit of time.
I don't have an SGI system handy to check the proper flag but both the
MIPSPro C and GNU-C compilers on Irix have a flag to cause all chars not
explicitly declared as unsigned to be signed. I ran into the same
problem when I ported a package from Intel/Linux to Irix.
Wow, a compiler option to make char behave as being signed? Let's see what "man c99" has to say:
Code:
Select all
-signed Causes values of type char to be treated as if they had
type signed char (which can affect the result of integer
promotions), but the values of CHAR_MIN and CHAR_MAX are
not affected. The default is to treat values of type char
as if they had type unsigned char.
Thus, does CFLAGS need '-signed' as extra option? Is it that simple?
So if i set that and recompile xcircuit 3.8.78, will i see the library again?
Affirmative. I also see the grid