You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Sriram Ganesan <sr...@gmail.com> on 2007/11/25 07:46:03 UTC

Issue with apache compilation : memmove & bcopy

Greetings,

I am a Graduate Student at UT-Austin and I am working on a class project
titled "Enhancing Server Availability through failure oblivious computing
methods". As part of the project, we are patching GCC to produce a
failure-oblivious compiler. We have built this compiler based on the patch
written by Richard Jones for a safe compiler. The patch is available here:
http://sourceforge.net/projects/boundschecking/ . We are now trying to
compile apache against our compiler. On running ./configure I noticed that
there are some checks which
are different compared to the normal GCC compiler. The difference being
that:

checking for memmove... no
checking for bcopy... no
checking for strncasecmp... no
checking for strcasecmp... no
checking for strdup... no
checking for strstr... no
checking for memchr... no

Further, when we go about trying to compile by typing "make" on the command
line we got the error:

Making all in srclib
make[1]: Entering directory `/home/ne0/Desktop/httpd-2.2.6/srclib'
Making all in apr
make[2]: Entering directory `/home/ne0/Desktop/httpd-2.2.6/srclib/apr'
make[3]: Entering directory `/home/ne0/Desktop/httpd-2.2.6/srclib/apr'
/bin/bash /home/ne0/Desktop/httpd-2.2.6/srclib/apr/libtool --silent
--mode=compile /home/ne0/gcc-4.0.2/objdir/gcc/xgcc -pthread
 -B/home/ne0/gcc-4.0.2/objdir/gcc/ -fbounds-checking -fno-builtin -Wall -O2
-g -DHAVE_CONFIG_H -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE
-D_LARGEFILE64_SOURCE   -I./include
-I/home/ne0/Desktop/httpd-2.2.6/srclib/apr/include/arch/unix
-I./include/arch/unix -I/home/ne0/Desktop/httpd-2.2.6/srclib/apr/include  -o
passwd/apr_getpass.lo -c passwd/apr_getpass.c && touch passwd/apr_getpass.lo
In file included from ./include/apr_want.h:63,
                from ./include/apr_pools.h:41,
                from /home/ne0/Desktop/httpd-2.2.6
/srclib/apr/include/arch/unix/../apr_private_common.h:24,
                from /home/ne0/Desktop/httpd-2.2.6
/srclib/apr/include/arch/unix/apr_private.h:779,
                from passwd/apr_getpass.c:22:

*/usr/include/string.h:293: error: conflicting types for 'bcopy'
/usr/include/string.h:44: error: previous declaration of 'bcopy' was here

*make[3]: *** [passwd/apr_getpass.lo] Error 1
make[3]: Leaving directory `/home/ne0/Desktop/httpd-2.2.6/srclib/apr'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/ne0/Desktop/httpd-2.2.6/srclib/apr'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/ne0/Desktop/httpd-2.2.6/srclib'
make: *** [all-recursive] Error 1

bcopy is declared only once in string.h and it seems puzzling as to where is
being redeclared. Our xgcc compiler is being used with the following CFLAGS:

"-B{path_of_directory containing_object_files} -fbounds-checking
-fno-builtin -Wall -O2 -g".

Both our failure-oblivious compiler and apache are installed on Ubuntu
linux. uname -a gave the following output:
*
Linux matrix 2.6.20-15-generic #2 SMP Sun Apr 15 07:36:31 UTC 2007 i686
GNU/Linux.

*We have been stuck with this issue for the last 3 days and any pointers as
to how this issue can be tackled would be greatly appreciated.

Thanks & Regards
Sriram

Re: Issue with apache compilation : memmove & bcopy

Posted by "William A. Rowe, Jr." <wr...@rowe-clan.net>.
Sriram Ganesan wrote:
> there are some checks which
> are different compared to the normal GCC compiler. The difference being
> that:
> 
> checking for memmove... no
> checking for bcopy... no
> checking for strncasecmp... no
> checking for strcasecmp... no
> checking for strdup... no
> checking for strstr... no
> checking for memchr... no

FYI - you want to examine the results in config.log, which will show you the
sources it attempted to compile and the compiler emits when it attempted to
track down the declaration.