View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0001004 | unreal | installing | public | 2003-05-27 18:23 | 2003-11-20 19:43 |
| Reporter | lion | Assigned To | |||
| Priority | normal | Severity | tweak | Reproducibility | always |
| Status | closed | Resolution | fixed | ||
| Product Version | 3.2-beta16 | ||||
| Summary | 0001004: Tweaks needed for compilation under Solaris | ||||
| Description | Compiling 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 Information | configure: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 | |||||
|
|
Could you attach your config.log file? That might help another coder understanding this bug. |
|
|
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. |
|
|
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. |
|
|
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. |
|
|
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). |
|
|
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. |
|
|
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. |
|
|
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. |
|
|
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. |
|
|
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. |
|
|
Ok http://www.codemastr.com/configure that should now work with SSL and also with inet_netof/etc and for nonblocking sockets. |
|
|
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. |
|
|
ok great, I'll add the changes then |
|
|
Fixed in .1819 |
| 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 |
|
Note Added: 0002866 | |
| 2003-05-29 04:48 | lion | Note Added: 0002867 | |
| 2003-05-29 19:43 |
|
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 |
|
Note Added: 0002884 | |
| 2003-05-30 17:30 |
|
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 |
|
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 |
|
Note Added: 0002894 | |
| 2003-05-30 20:31 |
|
Status | new => resolved |
| 2003-05-30 20:31 |
|
Resolution | open => fixed |
| 2003-05-30 20:31 |
|
Assigned To | => codemastr |
| 2003-05-30 20:31 |
|
Note Added: 0002895 | |
| 2003-11-20 19:43 | syzop | Status | resolved => closed |