You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by Ignaz Birnstingl <ig...@gmail.com> on 2012/02/02 16:22:33 UTC

[users@httpd] Problems building httpd on AIX 6.1 64 bit with GCC

Hi,

I'm trying to build Apache 2.2.22 on AIX 6.1 PPC 64 bit with gcc 4.4.6.
The configure line looks like this:
LDFLAGS="-maix64" LD=gcc AR="ar -X 64" CFLAGS="-maix64" ./configure
--prefix=/home/labuser/apache/httpd-22-x64 --enable-mods-shared=all
--enable-cache --enable-mem-cache --enable-headers --enable-proxy
--enable-proxy-http --enable-http --enable-cgi --enable-rewrite
--enable-deflate --with-included-apr

When linking APR, ar complains about an invalid object file format:
/bin/sh /home/labuser/apache/src/httpd-2.2.22-x64/srclib/apr/libtool
--silent --mode=link  gcc -pthread  -maix64 -DHAVE_CONFIG_H -U__STR__
-D_THREAD_SAFE   -I./include
-I/home/labuser/apache/src/httpd-2.2.22-x64/srclib/apr/include/arch/unix
-I./include/arch/unix
-I/home/labuser/apache/src/httpd-2.2.22-x64/srclib/apr/include/arch/unix
-I/home/labuser/apache/src/httpd-2.2.22-x64/srclib/apr/include
-version-info 4:5:4 -Wl,-brtl  -maix64 -o libapr-1.la -rpath
/home/labuser/apache/httpd-22-x64/lib passwd/apr_getpass.lo
strings/apr_cpystrn.lo strings/apr_fnmatch.lo strings/apr_snprintf.lo
strings/apr_strings.lo strings/apr_strnatcmp.lo strings/apr_strtok.lo
tables/apr_hash.lo tables/apr_tables.lo atomic/unix/builtins.lo
atomic/unix/ia32.lo atomic/unix/mutex.lo atomic/unix/ppc.lo
atomic/unix/s390.lo atomic/unix/solaris.lo dso/unix/dso.lo
file_io/unix/buffer.lo file_io/unix/copy.lo file_io/unix/dir.lo
file_io/unix/fileacc.lo file_io/unix/filedup.lo
file_io/unix/filepath.lo file_io/unix/filepath_util.lo
file_io/unix/filestat.lo file_io/unix/flock.lo file_io/unix/fullrw.lo
file_io/unix/mktemp.lo file_io/unix/open.lo file_io/unix/pipe.lo
file_io/unix/readwrite.lo file_io/unix/seek.lo file_io/unix/tempdir.lo
locks/unix/global_mutex.lo locks/unix/proc_mutex.lo
locks/unix/thread_cond.lo locks/unix/thread_mutex.lo
locks/unix/thread_rwlock.lo memory/unix/apr_pools.lo
misc/unix/charset.lo misc/unix/env.lo misc/unix/errorcodes.lo
misc/unix/getopt.lo misc/unix/otherchild.lo misc/unix/rand.lo
misc/unix/start.lo misc/unix/version.lo mmap/unix/common.lo
mmap/unix/mmap.lo network_io/unix/inet_ntop.lo
network_io/unix/inet_pton.lo network_io/unix/multicast.lo
network_io/unix/sendrecv.lo network_io/unix/sockaddr.lo
network_io/unix/socket_util.lo network_io/unix/sockets.lo
network_io/unix/sockopt.lo poll/unix/epoll.lo poll/unix/kqueue.lo
poll/unix/poll.lo poll/unix/pollcb.lo poll/unix/pollset.lo
poll/unix/port.lo poll/unix/select.lo random/unix/apr_random.lo
random/unix/sha2.lo random/unix/sha2_glue.lo shmem/unix/shm.lo
support/unix/waitio.lo threadproc/unix/proc.lo
threadproc/unix/procsup.lo threadproc/unix/signals.lo
threadproc/unix/thread.lo threadproc/unix/threadpriv.lo
time/unix/time.lo time/unix/timestr.lo user/unix/groupinfo.lo
user/unix/userinfo.lo   -lpthread
0654-210 passwd/.libs/apr_getpass.o is not valid in the current object
file mode.
        Use the -X option to specify the desired object mode.
0654-210 strings/.libs/apr_cpystrn.o is not valid in the current
object file mode.
        Use the -X option to specify the desired object mode.
0654-210 strings/.libs/apr_fnmatch.o is not valid in the current
object file mode.
        Use the -X option to specify the desired object mode.
0654-210 strings/.libs/apr_snprintf.o is not valid in the current
object file mode.
        Use the -X option to specify the desired object mode.
0654-210 strings/.libs/apr_strings.o is not valid in the current
object file mode.
        Use the -X option to specify the desired object mode.
...
Note that the build does not stop here.

When linking APR-util there are some linker errors concerning the
location of libodbc.so: the build searches in /opt/freeware/lib
instead of /opt/freeware/lib64. I simply changed that in the Makefile
but when linking the thing together similar errors occur like for APR:
0654-210 buckets/.libs/apr_brigade.o is not valid in the current
object file mode.
        Use the -X option to specify the desired object mode.
0654-210 buckets/.libs/apr_buckets.o is not valid in the current
object file mode.
        Use the -X option to specify the desired object mode.
0654-210 buckets/.libs/apr_buckets_alloc.o is not valid in the current
object file mode.
        Use the -X option to specify the desired object mode.
...

And finally, when linking htpasswd there are linker errors of undefined symbols:
        /home/labuser/apache/src/httpd-2.2.22-x64/srclib/apr/libtool
--silent --mode=link gcc -pthread  -maix64   -Wl,-brtl  -maix64 -o
htpasswd  htpasswd.lo -Wl,-uXML_Parse  -lm
/home/labuser/apache/src/httpd-2.2.22-x64/srclib/pcre/libpcre.la
/home/labuser/apache/src/httpd-2.2.22-x64/srclib/apr-util/libaprutil-1.la
-lexpat /home/labuser/apache/src/httpd-2.2.22-x64/srclib/apr/libapr-1.la
-lpthread
ld: 0711-317 ERROR: Undefined symbol: .apr_generate_random_bytes
ld: 0711-317 ERROR: Undefined symbol: .apr_file_printf
ld: 0711-317 ERROR: Undefined symbol: .apr_file_puts
ld: 0711-317 ERROR: Undefined symbol: .apr_strerror
ld: 0711-317 ERROR: Undefined symbol: .apr_file_close
...
This seems to be a consequence of ar not putting the objects to the .a
file, right?

So to me it seems I'm doing something fundamentally wrong. Is there a
flag to tell the configure script to use 64 bits instead of 32 bits? I
tried using the CFLAGS, LDFLAGS etc. but is that the correct approach?
Please let me know if I should post some more information.

Any help would be greatly appreciated.

Thanks,
-- Ignaz

---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Re: [users@httpd] Problems building httpd on AIX 6.1 64 bit with GCC

Posted by Ignaz Birnstingl <ig...@gmail.com>.
Hi Eric,

thanks for the advice. Unfortunately that did not quite solve the
issue but running libtool without --silent I found out what was wrong:
libtool calls ar and nm and both need the -X 64 flag - so fixing the
configure command line to
NM="nm -B -X 64" LDFLAGS="-maix64" LD=gcc AR="ar -X 64" CC="gcc
-maix64" ./configure --prefix=/home/labuser/apache/httpd-22-x64
--enable-mods-shared=all --enable-cache --enable-mem-cache
--enable-headers --enable-proxy --enable-proxy-http --enable-http
--enable-cgi --enable-rewrite --enable-deflate --with-included-apr
did the trick.
The wrong path to the odbc libraries was still in the Makefile and I
did not find a configure option to change that but that is easily
fixed up in the Makefile itself.

Thanks again,
-- Ignaz

2012/2/2 Eric Covener <co...@gmail.com>:
> On Thu, Feb 2, 2012 at 10:22 AM, Ignaz Birnstingl <ig...@gmail.com> wrote:
>> Hi,
>>
>> I'm trying to build Apache 2.2.22 on AIX 6.1 PPC 64 bit with gcc 4.4.6.
>> The configure line looks like this:
>> LDFLAGS="-maix64" LD=gcc AR="ar -X 64" CFLAGS="-maix64" ./configure
>> --prefix=/home/labuser/apache/httpd-22-x64 --enable-mods-shared=all
>> --enable-cache --enable-mem-cache --enable-headers --enable-proxy
>> --enable-proxy-http --enable-http --enable-cgi --enable-rewrite
>> --enable-deflate --with-included-apr
>
> Seems like people generally have more luck with CC="gcc -maix64" then
> just putting it in CFLAGS -- can you give that a try?
>
> ---------------------------------------------------------------------
> The official User-To-User support forum of the Apache HTTP Server Project.
> See <URL:http://httpd.apache.org/userslist.html> for more info.
> To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
>   "   from the digest: users-digest-unsubscribe@httpd.apache.org
> For additional commands, e-mail: users-help@httpd.apache.org
>

---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Re: [users@httpd] Problems building httpd on AIX 6.1 64 bit with GCC

Posted by Eric Covener <co...@gmail.com>.
On Thu, Feb 2, 2012 at 10:22 AM, Ignaz Birnstingl <ig...@gmail.com> wrote:
> Hi,
>
> I'm trying to build Apache 2.2.22 on AIX 6.1 PPC 64 bit with gcc 4.4.6.
> The configure line looks like this:
> LDFLAGS="-maix64" LD=gcc AR="ar -X 64" CFLAGS="-maix64" ./configure
> --prefix=/home/labuser/apache/httpd-22-x64 --enable-mods-shared=all
> --enable-cache --enable-mem-cache --enable-headers --enable-proxy
> --enable-proxy-http --enable-http --enable-cgi --enable-rewrite
> --enable-deflate --with-included-apr

Seems like people generally have more luck with CC="gcc -maix64" then
just putting it in CFLAGS -- can you give that a try?

---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org