You are viewing a plain text version of this content. The canonical link for it is here.
Posted to apache-bugdb@apache.org by Bernhard Simon <si...@zid.tuwien.ac.at> on 2001/05/22 17:38:18 UTC
os-ultrix/7768: 1.3.20 fails to build on ULTRIX V4.5
>Number: 7768
>Category: os-ultrix
>Synopsis: 1.3.20 fails to build on ULTRIX V4.5
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: apache
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: apache
>Arrival-Date: Tue May 22 08:50:11 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator: simon@zid.tuwien.ac.at
>Release: 1.3.20
>Organization:
apache
>Environment:
ULTRIX/RISC V4.5
cc (bundeled)
>Description:
Undefined symbols when linking httpd due to two configure problems:
:
cc -O -DULTRIX -std ... -o httpd ...
ld:
Undefined:
__ull_div
__ll_mul
__ull_rshift
isinf
1. __*ll_* symbols: long long problem on ULTRIX. AP_TYPE_QUAD is set to 8
(src/Configure, line 2176), so src/include/ap_config_auto.h contains
/* determine: longest possible integer type */
#ifndef AP_LONGEST_LONG
#define AP_LONGEST_LONG long long
#endif
2. isinf does not exist on ULTRIX but ./helpers/TestCompile returns zero
(src/Configure, line 2195), so src/include/ap_config_auto.h contains
/* determine: isinf() found in libc */
#ifndef HAVE_ISINF
#define HAVE_ISINF 1
#endif
>How-To-Repeat:
CC=cc OPTIM=-O ./configure --prefix=/usr/local/lib/apache
make
>Fix:
Problem 1: Compile all files with "-std1" (src/Configure, line 1477), then
the compiler will only warn about "long long is not standard ANSI. (3.1.1),
AP_TYPE_QUAD is set to 4 and there are no more undefined __*ll_* symbols.
But there is one additional issue with "-std1" (strict ANSI C), see 1a.
Problem 2: No fix yet, but a bit more analysis. The ULTRIX Compiler (cc/ld)
creates a (non-executable) file, even if there were unresolved symbols.
This difference to gcc seems to confuse TestCompile.
Output of TestCompile, with an "ls -l $TARGET" inserted before exstat=0:
# ./helpers/TestCompile -v func isinf
cd ..; cc -O -DULTRIX -std1 -DUSE_HSREGEX -DUSE_EXPAT -I./lib/expat-lite \
-DNO_DL_NEEDED `./apaci` -o helpers/testfunc helpers/testfunc.c
ld:
Undefined:
isinf
*** Error code 1
Stop.
-rw-r--r-- 1 root system 17028 May 22 16:28 testfunc
# echo $?
0
Problem 1a: With "-std1", compilation of src/ap/ap_getpass.c fails because
of a missing "extern char *getpass(const char *);".
:
cc -c ... -O -DULTRIX -std1 ... `../apaci` ap_getpass.c
cfe: Error: ap_getpass.c, line 191: \
Type for rhs of assignment expression is incompatible with lhs (3.3.16.1)
pw_got = getpass(prompt);
-----------^
Remark: apache 1.3.20 builds out-of-the-box on ULTRIX V4.5 with gcc (2.95.3)
and gmake (3.79.1). Only one warning:
ap_getpass.c: In function `ap_getpass':
ap_getpass.c:191: warning: assignment makes pointer from integer without a cast
>Release-Note:
>Audit-Trail:
>Unformatted:
[In order for any reply to be added to the PR database, you need]
[to include <ap...@Apache.Org> in the Cc line and make sure the]
[subject line starts with the report component and number, with ]
[or without any 'Re:' prefixes (such as "general/1098:" or ]
["Re: general/1098:"). If the subject doesn't match this ]
[pattern, your message will be misfiled and ignored. The ]
["apbugs" address is not added to the Cc line of messages from ]
[the database automatically because of the potential for mail ]
[loops. If you do not include this Cc, your reply may be ig- ]
[nored unless you are responding to an explicit request from a ]
[developer. Reply only with text; DO NOT SEND ATTACHMENTS! ]