You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by rb...@locus.apache.org on 2000/12/01 08:32:12 UTC

cvs commit: apache-2.0/src/build build.mk build2.mk buildexports.sh

rbb         00/11/30 23:32:12

  Modified:    src      CHANGES
               src/build build.mk build2.mk buildexports.sh
  Log:
  Get Apache to use the new generated exports list.  This works on my
  Linux machine, but I am pretty sure there are going to be problems for
  others.  The idea here, is to be able to generate a list of the exported
  functions from APR.  This list needs to be correct, we can not list
  functions that are not exported on the platform being built on.  To
  accomplish this, we generate a list of the exported symbols when we
  configure APR.  As a part of this list, we also include all of the
  #if macros that surround those symbols.  Apache then uses this list
  of functions and macros to generate a file that refers to each of those
  symbols.  Because we have the macros, when we compile this file, the
  compiler ignores any symbols that aren't valid on this platform.
  
  Revision  Changes    Path
  1.352     +7 -0      apache-2.0/src/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/CHANGES,v
  retrieving revision 1.351
  retrieving revision 1.352
  diff -u -r1.351 -r1.352
  --- CHANGES	2000/11/30 00:31:01	1.351
  +++ CHANGES	2000/12/01 07:32:09	1.352
  @@ -1,4 +1,11 @@
   Changes with Apache 2.0a9
  +  *) Cleanup the export list a bit.  This creates a single unified list of
  +     functions exported by APR.  The export list is generated at configure
  +     time, and that list is then used to generate the exports.c file.
  +     Because of the way the export list is generated, we only export those
  +     functions that are valid on the platform we are building on.
  +     [Ryan Bloom]
  +
     *) Enable logging the cookie with mod_log_config
        [Sander van Zoest <sa...@covalent.net>]
   
  
  
  
  1.11      +1 -4      apache-2.0/src/build/build.mk
  
  Index: build.mk
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/build/build.mk,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- build.mk	2000/10/30 23:08:26	1.10
  +++ build.mk	2000/12/01 07:32:11	1.11
  @@ -60,7 +60,7 @@
   
   STAMP = buildmk.stamp
   
  -all: $(STAMP) generated_lists export_lists
  +all: $(STAMP) generated_lists
   	@$(MAKE) AMFLAGS=$(AMFLAGS) -s -f build/build2.mk
   
   generated_lists:
  @@ -71,9 +71,6 @@
   	fi; 
   	@echo config_m4_files = `find . -name config.m4` > $@
   	@n=`helpers/PrintPath libtoolize`; echo libtool_prefix = `dirname $$n`/.. >> $@
  -
  -export_lists:
  -	@build/buildexports.sh main/exports.c support/httpd.exp
   
   $(STAMP): build/buildcheck.sh
   	@build/buildcheck.sh && touch $(STAMP)
  
  
  
  1.19      +4 -1      apache-2.0/src/build/build2.mk
  
  Index: build2.mk
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/build/build2.mk,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- build2.mk	2000/10/22 15:37:05	1.18
  +++ build2.mk	2000/12/01 07:32:11	1.19
  @@ -72,7 +72,7 @@
   
   PCRE_TARGETS = $(pcre_configure)
   
  -targets = .deps aclocal.m4 $(APACHE_TARGETS) $(APR_TARGETS) $(PCRE_TARGETS)
  +targets = .deps aclocal.m4 $(APACHE_TARGETS) $(APR_TARGETS) $(PCRE_TARGETS) export_lists
   
   cross_compile_warning = "warning: AC_TRY_RUN called without default to allow cross compiling"
   
  @@ -86,6 +86,9 @@
   aclocal.m4: acinclude.m4 lib/apr/apr_common.m4 lib/apr/hints.m4 $(libtool_m4)
   	@echo rebuilding $@
   	@cat acinclude.m4 $(libtool_m4) > $@
  +
  +export_lists:
  +	@build/buildexports.sh main/exports.c lib/apr/apr.exports
   
   $(LT_TARGETS):
   	libtoolize $(AMFLAGS) --force
  
  
  
  1.5       +21 -4     apache-2.0/src/build/buildexports.sh
  
  Index: buildexports.sh
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/build/buildexports.sh,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- buildexports.sh	2000/11/17 02:33:00	1.4
  +++ buildexports.sh	2000/12/01 07:32:11	1.5
  @@ -7,18 +7,35 @@
   echo " * link all of the APR functions into server regardless of whether"
   echo " * the base server uses them."
   echo " */"
  -
  +echo ""
  + 
  +cd lib/apr/include 
  +for file in *.h
  +do
  +    echo "#include \"$file\""
  +done
  +cd ../../../
   echo ""
   
   while read LINE
   do
  +    if [ "x`echo $LINE | egrep  '^[:space:]*APR_'`" != "x" ]; then
  +        ifline=`echo "$LINE" |\
  +            sed -e 's%^\(.*\)%\#if \1%'`
  +        echo $ifline
  +    fi
       if [ "x`echo $LINE | egrep  '^[:space:]*apr_'`" != "x" ]; then
  -        newline=`echo "$LINE" |\
  -            sed -e 's%^\(.*\)%extern const void *\1\\(void\);%'`
  -        echo $newline
  +#        newline=`echo "$LINE" |\
  +#            sed -e 's%^\(.*\)%extern const void *\1\\(void\);%'`
  +#        echo $newline
           newline=`echo "$LINE" |\
               sed -e 's%^\(.*\)%const void *ap_hack_\1 = \(const void *\)\1\;%'`
           echo $newline
  +    fi
  +    if [ "x`echo $LINE | egrep  '^[:space:]*\/APR_'`" != "x" ]; then
  +        endline=`echo "$LINE" |\
  +            sed -e 's%^\/\(.*\)%\#endif \/\*\1\*\/%'`
  +        echo "$endline"
       fi
   done