With this patch, it is no longer neccessary to create the
/imports/x11/include/X11 symlink...
Also, remove the include of xfree86.cf from linux.cf, and define our
own DefaultCCOptions. Setup to use only -ansi, not -pendantic.
gcc can generate dependencies, so use that instead of building and
depending on the rather delicate and archaic 'makedepend'.
This fix removes makedepend from being built or used on linux, and
instead uses gcc to generate dependency data in .depend files.
I think pretty much every platform that uses gcc should do this. I am
not sure if other compilers (intel, clang) can do this though.
This reverts commit 8a8619bfa8.
More work will need to be done to use tirpc on 64bit systems. It
works 'accidentally' on 32b systems. The issue is that tirpc
includes *must* be used, and there is some work required to properly
support this (like proper include paths, proper definition of XDR,
etc).
So for now, we revert this until that work can be completed and tested,
otherwise 64b linux builds are likely to have problems.
Currently on Linux, you must run rpcbind in insecure mode (-i) in
order for ttsession to register with rpcbind (the portmapper). This
is because, on most systems, libc contains an older sun-based rpc
library embedded within it. The sun-rpc code does not know how to
authenticate with rpcbind when run as a non-privileged user.
Using libtirpc, ttsession can register with rpcbind without requiring
it to be run in insecure mode. You must have the libtirpc-dev, or
equivalent package installed to use it.
If you want to try this:
- install libtirpc-dev or equivalent
- if your rpcbind process is already running in insecure mode (-i
option), remove that option and restart it.
- edit config/host.def, (create if it doesn't exist) and add:
#define HasTIRPCLib YES
- rebuild CDE (make World). It's probably a good idea to remove
/usr/dt/* beforehand to avoid contamination.
Some linux systems seem to incorporate tirpc directly into libc (as
all of the BSD's do AFAIK) so this may not be needed.
I know that at least on Ubuntu systems defining HasTIRPCLib to YES is
required in order to run rpcbind without -i.
this means the compiler treats them as system headers and does not give you
excessive warnings from them. This is used because X11 does not like the
-ansi and -pedantic warnings that CDE is compiled with.
Added proper SharedDtSvcReqs in lnxLib.tmpl and CplusplusLibC in
linux.cf. This allows the libstdc++ dependancy to be properly
declared for libDtSvc so that it is not neccessary to hardcode 'CCLINK
= g++' in the Imakefiles of programs linking angainst libDtSvc.
- also some rework of linux.cf
- only allow ELF systems
- use -pipe
- add some more defines
- get rid of some of the ancient (libc5/linux 1) support. Really,
don't expect CDE to build right on such old systems.
Remove from individual Imakefiles.
Also, remove '#if 0' block in linux.cf, and remove empty
LinuxMachineDefines. This should be working correctly. If not, let me
know.