View Issue Details

IDProjectCategoryView StatusLast Update
0001004unrealinstallingpublic2003-11-20 19:43
Reporterlion Assigned Tocodemastr 
PrioritynormalSeveritytweakReproducibilityalways
Status closedResolutionfixed 
Product Version3.2-beta16 
Summary0001004: Tweaks needed for compilation under Solaris
DescriptionCompiling in support for SSL and IPv6 requires some tweaking. First, even when including the pathname for SSL in the Config script, the configure script complains it cannot find the header files. Adding the CFLAGS environment variable with "-I/usr/local/ssl/include" causes it to find the header file, but complain it's rejected by the preprocessor. This seems to be because the -I parameter doesn't get included for the preprocessor check. Relevant section of config.log is included under 'Additional information'. This isn't a real problem, however, because despite this failure, SSL support is still compiled in correctly.

Second, the configure script fails to detect IPv6 support. Examining the log shows this is because the testing program is not linked against libsocket rather than actually lacking support. Setting an environment variable LDFLAGS that includes -lsocket allows the configure script to detect IPv6 support. However this seems to then cause -lsocket to get included on each compilation command, making gcc complain about the library being irrelevant to compiling source to object code without linking. I just go in and edit CFLAGS in the Makefile by hand to suppress this.
Additional Informationconfigure:3793: checking openssl/ssl.h presence
configure:3800: gcc -E conftest.c
configure:3796:25: openssl/ssl.h: No such file or directory
configure:3806: $? = 1
configure: failed program was:
#line 3795 "configure"
#include "confdefs.h"
#include <openssl/ssl.h>
configure:3824: result: no
configure:3830: WARNING: openssl/ssl.h: accepted by the compiler, rejected by th
e preprocessor!
configure:3832: WARNING: openssl/ssl.h: proceeding with the preprocessor's resul
t
configure:3842: checking for openssl/ssl.h
configure:3849: result: no
Attached Files
config.log (49,793 bytes)
config-ipv6.log (51,112 bytes)
config-ssl.log (49,019 bytes)
config-final.log (43,032 bytes)
3rd party modules

Activities

syzop

2003-05-29 02:32

administrator   ~0002862

Could you attach your config.log file? That might help another coder understanding this bug.

lion

2003-05-29 02:38

reporter   ~0002864

I've attached the config.log. This is the log from the successful configuration, with the LDFLAGS and CFLAGS environment variables set as described above.

codemastr

2003-05-29 04:22

reporter   ~0002866

Well I believe I can definately fix the IPv6 problem, and most likely the SSL problem, but in order to do it I'll need either one of two things, either a temporary shell so I can test it (we don't have access to any SunOS systems), or when I think I have it fixed I'll upload a new copy of ./configure here which you can download then rerun ./Config (without manipulating CFLAGS and LDFLAGS) to see if it works and if it does then I'll consider it fixed.

lion

2003-05-29 04:48

reporter   ~0002867

I'll be glad to try an updated copy of ./configure. If it turns out to be a hairy problem, then we can go to the trouble of arranging temporary shell access. I can't imagine this will be that complicated to work out, though, seeing as how I managed to hack it enough to work pretty quickly.

codemastr

2003-05-29 19:43

reporter   ~0002874

Ok I think I have fixed the IPv6 part (NOTE: I haven't even looked at the SSL stuff yet) so would you mind downloading http://www.codemastr.com/configure and try compiling with IPv6 and tell me if it correctly detects IPv6 (and doesn't make gcc complain about linking everything to -lsocket).

lion

2003-05-29 23:25

reporter   ~0002883

I've attached the latest config.log as config-ipv6.log, and IPv6 support was detected. (I didn't actually compile it up, though.)

I did notice it misses gethostbyname_r() (which requires -lnsl on Solaris) and inet_netof() (which requires -lsocket). There may be others, but I didn't look that intently.

codemastr

2003-05-29 23:58

reporter   ~0002884

Ok I'll work on SSL next, then inet_netof, the gethostbyname_r check I'm just going to remove as it is no longer needed since Unreal isn't threaded.

codemastr

2003-05-30 17:30

reporter   ~0002888

Ok can you redownload http://www.codemastr.com/configure (make sure it isn't cached), I believe I fixed the SSL thing and I removed the gethostbyname_r, as for inet_netof, I added -lsocket, but according to the SunOS man pages it also requires -lnsl so tell me if it still doesn't work and I'll add that. Also I added the -lsocket for inet_addr and inet_ntoa so it should correctly detect them now as well.

lion

2003-05-30 18:12

reporter   ~0002889

This time the configure script finds SSL, but encodes the wrong pathnames into the Makefile. It puts '-I/usr/local/ssl/include/openssl', but since the source code #includes them as <openssl/filename.h>, it should just be '-I/usr/local/ssl/include'.

gcc -I../include -pipe -g -O2 -funsigned-char -I/usr/local/ssl/include/openssl -I/usr/local/include -DZIP_LINKS -D_SOLARIS -L/usr/local/ssl/lib -L/usr/local/lib -c auth.c
In file included from auth.c:21:
../include/struct.h:32:47: openssl/rsa.h: No such file or directory
../include/struct.h:33:28: openssl/crypto.h: No such file or directory
../include/struct.h:34:26: openssl/x509.h: No such file or directory
<and on and on and on>

Looks like you're right about inet_netof -- it didn't fly without -lnsl. I've added config-ssl.log, the latest version of the configure script output.

lion

2003-05-30 18:14

reporter   ~0002890

And one other thing: I also noticed it didn't seem to think I had any kind of nonblocking sockets, and further examination shows it failed to find socket() and recvfrom().. two more functions from -lsocket.

codemastr

2003-05-30 18:49

reporter   ~0002891

Ok http://www.codemastr.com/configure that should now work with SSL and also with inet_netof/etc and for nonblocking sockets.

lion

2003-05-30 19:31

reporter   ~0002893

Now it looks good. The configure script seems to detect everything, and the compilation finished successfully. I didn't try to boot the binary because my server is running, but seeing as it was only changes to the configure script, it should be fine. I've included the config log as config-final.log just FYI.

codemastr

2003-05-30 20:28

reporter   ~0002894

ok great, I'll add the changes then

codemastr

2003-05-30 20:31

reporter   ~0002895

Fixed in .1819

Issue History

Date Modified Username Field Change
2003-05-27 18:23 lion New Issue
2003-05-29 02:32 syzop Note Added: 0002862
2003-05-29 02:37 lion File Added: config.log
2003-05-29 02:38 lion Note Added: 0002864
2003-05-29 04:22 codemastr Note Added: 0002866
2003-05-29 04:48 lion Note Added: 0002867
2003-05-29 19:43 codemastr Note Added: 0002874
2003-05-29 23:23 lion File Added: config-ipv6.log
2003-05-29 23:25 lion Note Added: 0002883
2003-05-29 23:58 codemastr Note Added: 0002884
2003-05-30 17:30 codemastr Note Added: 0002888
2003-05-30 18:12 lion Note Added: 0002889
2003-05-30 18:13 lion File Added: config-ssl.log
2003-05-30 18:14 lion Note Added: 0002890
2003-05-30 18:49 codemastr Note Added: 0002891
2003-05-30 19:29 lion File Added: config-final.log
2003-05-30 19:31 lion Note Added: 0002893
2003-05-30 20:28 codemastr Note Added: 0002894
2003-05-30 20:31 codemastr Status new => resolved
2003-05-30 20:31 codemastr Resolution open => fixed
2003-05-30 20:31 codemastr Assigned To => codemastr
2003-05-30 20:31 codemastr Note Added: 0002895
2003-11-20 19:43 syzop Status resolved => closed