[comp.windows.x] X11R3 and Gcc 1.37.1

pd@cs.qmw.ac.uk (Paul Davison [postmaster]) (10/31/90)

[[ posted for a friend without netnews access, reply address is at the end ]]

I have just [overnight] recompiled X11R3 with the Gnu C compiler,
gcc-1.37.1. However I now have a bad X11. Can anyone throw any
light on the problem?

"xinit" results in the messages:
        Getting interface configuration: Operation not supported on socket
        sunOpenFrameBuffer: Inappropriate ioctl for device
        sunOpenFrameBuffer: Inappropriate ioctl for device

        Fatal server bug!
        Can't find any displays

        giving up.
        xinit:  Connection refused (errno 61):  unable to connect to X server


Compilation switches were:

CC = gcc -fcombine-regs -fstrength-reduce -finline-functions \
        -fpcc-struct-return -DPURDUE -Dinline=INLINE \
        -DNOSTDHDRS

Host is a Sun 3/280 running SunOS 4.0.3.

I had to make a few minor changes to the source to allow gcc to work.
For example, I had to edit ~/util/makedepend/main.c to change definition
of catch() from
        #ifdefined (ultrix)
        void catch();
        #else
        int catch();
        #endif
to
        #ifdefined (ultrix)
            void catch ();
        #else
        #    ifdef sun
                void catch ();
        #    else
                int catch ();
        #    endif
        #endif

During compilation, I got no errors, and the only warnings were about
        i. functions implicitly declared external redeclared static
        ii. useless keywords
Both are ok.

Running my old [Sun cc compiled] X11R3, I still can't run any of my new
clients. For example, I get:
        gav% xlogo
        XIO:  fatal IO error 45 (Operation not supported on socket) on X server
"gav:0.0"
              after 30 requests (17 known processed) with 0 events remaining.

----------------------
Please email any replies back to me as I do not have access to the news
at the present time. My address is:
        druid@gav.uucp
or, if the routing tables give any trouble:
        druid%gav.uucp@ukc.ac.uk
-- 
Paul Davison (postmaster for cs.qmw.ac.uk)

UUCP:      pd@qmw-cs.uucp                      | Computer Science Dept
Internet:  pd%cs.qmw.ac.uk@nsfnet-relay.ac.uk  | QMW, University of London
JANET:     pd@uk.ac.qmw.cs                     | Mile End Road
Voice:     +44 71 975 5250 (Direct Dial)       | London E1 4NS

mouse@LIGHTNING.MCRCIM.MCGILL.EDU (11/05/90)

> I have just [overnight] recompiled X11R3 with the Gnu C compiler,
> gcc-1.37.1.  However I now have a bad X11.  Can anyone throw any
> light on the problem?

> "xinit" results in the messages:
>         Getting interface configuration: Operation not supported on socket
>         sunOpenFrameBuffer: Inappropriate ioctl for device
>         sunOpenFrameBuffer: Inappropriate ioctl for device

>         Fatal server bug!
>         Can't find any displays

>         giving up.
>         xinit:  Connection refused (errno 61):  unable to connect to X server

I think this is a FAQ (but I suppose that doesn't help someone without
news access...).  The problem lies with gcc's include files.  You need
to run (or rerun, or perhaps fix and rerun :-) gcc's fixincludes
script.  Try a simple test.  Put the following two lines in a file, say
foo.c:

	#include <sys/ioctl.h>
	SIOCGIFCONF

Run `cc -E foo.c' and `gcc -E foo.c', and compare the last line of
output from them.  You will[%] see that the gcc output has 'x' where
the cc output has 'i'.  They should be (functionally) identical.  Play
with fixincludes etc until this works (if this doesn't work, there's
little hope for X).

[%] Almost certainly.  Every time I've heard of this, the problem has
    been as I've described here.

> Running my old [Sun cc compiled] X11R3, I still can't run any of my
> new clients. For example, I get:

>         gav% xlogo
>         XIO:  fatal IO error 45 (Operation not supported on socket) on X server "gav:0.0"
>               after 30 requests (17 known processed) with 0 events remaining.

This is more of the same thing.  The problem is that when gcc uses your
Sun-provided include files, all the ioctl defines (like SIOCGIFCONF)
come out with the wrong values, so all ioctls fail.

					der Mouse

			old: mcgill-vision!mouse
			new: mouse@larry.mcrcim.mcgill.edu