root/trunk/apache22/apache-2.2.x-probes-p1.patch

Revision 3, 25.2 kB (checked in by jesus, 8 months ago)

fix rewrite-log probe (args weren't working right)

  • Makefile.in

    old new  
    22SUBDIRS = srclib os server modules support 
    33CLEAN_SUBDIRS = test 
    44 
     5MPM_LIB = $(MPM_LIB:.la=.o) 
     6PROGRAM_DEPENDENCIES_O = $(PROGRAM_DEPENDENCIES:.la=.o) 
     7PROGRAM_DEPENDENCIES_OBJECTS = $(PROGRAM_DEPENDENCIES:.la=.objects) 
     8 
    59PROGRAM_NAME         = $(progname) 
    610PROGRAM_SOURCES      = modules.c 
    7 PROGRAM_LDADD        = buildmark.o $(HTTPD_LDFLAGS) $(PROGRAM_DEPENDENCIES) $(EXTRA_LIBS) $(AP_LIBS) $(LIBS) 
    8 PROGRAM_PRELINK      = $(COMPILE) -c $(top_srcdir)/server/buildmark.c 
     11PROGRAM_LDADD        = buildmark.o $(HTTPD_LDFLAGS) `cat $(PROGRAM_DEPENDENCIES_OBJECTS)` \ 
     12                        `test -f probes.o && echo probes.o` $(EXTRA_LIBS) $(AP_LIBS) $(LIBS) \ 
     13                        `./libtool-dep-extract $(PROGRAM_DEPENDENCIES)` 
     14PROGRAM_PRELINK      = $(COMPILE) -c $(top_srcdir)/server/buildmark.c && \ 
     15                        $(DTRACE) $(DTRACEFLAGS) -G -s apache_probes.d -o probes.o \ 
     16                        .libs/modules.o buildmark.o `cat $(PROGRAM_DEPENDENCIES_OBJECTS)` 
     17 
    918PROGRAM_DEPENDENCIES = \ 
    1019  server/libmain.la \ 
    1120  $(BUILTIN_LIBS) \ 
     
    1625TARGETS         = $(PROGRAMS) $(shared_build) $(other_targets) 
    1726INSTALL_TARGETS = install-conf install-htdocs install-error install-icons \ 
    1827        install-other install-cgi install-include install-suexec install-build \ 
    19         install-man 
     28        install-man install-dtrace 
    2029 
    2130DISTCLEAN_TARGETS  = include/ap_config_auto.h include/ap_config_layout.h \ 
    2231        modules.c config.cache config.log config.status build/config_vars.mk \ 
     
    2837include $(top_builddir)/build/rules.mk 
    2938include $(top_srcdir)/build/program.mk 
    3039 
     40install-dtrace: 
     41        @echo Installing DTrace library 
     42        @$(MKINSTALLDIRS) $(DESTDIR)/usr/lib/dtrace 
     43        @chown root:sys $(DESTDIR)/usr 
     44        @chown -R root:bin $(DESTDIR)/usr/lib 
     45        @chmod -R 0755 $(DESTDIR)/usr 
     46        @cp $(top_srcdir)/ap.d $(DESTDIR)/usr/lib/dtrace 
     47        @chown root:bin $(DESTDIR)/usr/lib/dtrace/ap.d 
     48        @chmod 0644 $(DESTDIR)/usr/lib/dtrace/ap.d 
     49 
    3150install-conf: 
    3251        @echo Installing configuration files 
    3352        @$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir) $(DESTDIR)$(sysconfdir)/extra 
  • libtool-dep-extract

    old new  
     1#!/bin/sh 
     2 
     3for i in $* 
     4do 
     5  sh -c ". $i; "'echo $dependency_libs' 
     6done 
  • ap.d

    old new  
     1#pragma D depends_on provider io 
     2typedef struct request_rec { 
     3    uintptr_t pool; 
     4    uintptr_t connection; 
     5    uintptr_t server; 
     6    uintptr_t next; 
     7    uintptr_t prev; 
     8    uintptr_t main; 
     9    char *the_request; 
     10    int assbackwards; 
     11    int proxyreq; 
     12    int header_only; 
     13    char *protocol; 
     14    int proto_num; 
     15    char *hostname; 
     16    int64_t request_time; 
     17    char *status_line; 
     18    int status; 
     19    const char *method; 
     20    int method_number; 
     21    int64_t allowed; 
     22    uintptr_t allowed_xmethods; 
     23    uintptr_t allowed_methods; 
     24    offset_t sent_bodyct; 
     25    offset_t bytes_sent; 
     26    int64_t mtime; 
     27    int chunked; 
     28    char *range; 
     29    offset_t clength; 
     30    offset_t remaining; 
     31    offset_t read_length; 
     32    int read_body; 
     33    int read_chunked; 
     34    unsigned expecting_100; 
     35    uintptr_t headers_in; 
     36    uintptr_t headers_out; 
     37    uintptr_t err_headers_out; 
     38    uintptr_t subprocess_env; 
     39    uintptr_t notes; 
     40    char *content_type;   /* Break these out --- we dispatch on 'em */ 
     41    char *handler;        /* What we *really* dispatch on */ 
     42    char *content_encoding; 
     43    uintptr_t content_languages; 
     44    char *vlist_validator; 
     45    char *user; 
     46    char *ap_auth_type; 
     47    int no_cache; 
     48    int no_local_copy; 
     49    char *unparsed_uri; 
     50    char *uri; 
     51    char *filename; 
     52    char *canonical_filename; 
     53    char *path_info; 
     54    char *args; 
     55    /* finfo */ 
     56    uintptr_t finfo_pool; 
     57    int32_t finfo_valid; 
     58    int32_t finfo_protection; 
     59    int32_t finfo_filetype; 
     60    int finfo_user; 
     61    int finfo_group; 
     62    uint64_t finfo_inode; 
     63    uint64_t finfo_device; 
     64    int32_t finfo_nlink; 
     65    offset_t finfo_size; 
     66    offset_t finfo_csize; 
     67    int64_t finfo_atime; 
     68    int64_t finfo_mtime; 
     69    int64_t finfo_ctime; 
     70    char *finfo_fname; 
     71    char *finfo_name; 
     72    uintptr_t finfo_ffilehand; 
     73    /* parsed_uri */ 
     74    char *uri_scheme; 
     75    char *uri_hostinfo; 
     76    char *uri_user; 
     77    char *uri_password; 
     78    char *uri_hostname; 
     79    char *uri_port_str; 
     80    char *uri_path; 
     81    char *uri_query; 
     82    char *uri_fragment; 
     83    uintptr_t uri_hostent; 
     84    uint16_t uri_port; 
     85    unsigned uri_is_initialized:1; 
     86    unsigned uri_dns_looked_up:1; 
     87    unsigned uri_dns_resolved:1; 
     88 
     89    /* back to request_rec */ 
     90    int used_path_info; 
     91    uintptr_t per_dir_config; 
     92    uintptr_t request_config; 
     93    uintptr_t htaccess; 
     94    uintptr_t output_filters; 
     95    uintptr_t input_filters; 
     96    uintptr_t proto_output_filters; 
     97    uintptr_t proto_input_filters; 
     98    int eos_sent; 
     99} request_rec; 
     100 
  • server/Makefile.in

    old new  
    6161        for dir in $(EXPORT_DIRS_APR); do \ 
    6262            (ls $$dir/ap[ru].h $$dir/ap[ru]_*.h >> $$tmp 2>/dev/null); \ 
    6363        done; \ 
    64         sort -u $$tmp > $@; \ 
     64        sort -u $$tmp | grep -v apache_probes.h > $@; \ 
    6565        rm -f $$tmp 
    6666 
    6767exports.c: export_files 
  • server/protocol.c

    old new  
    844844    apr_socket_t *csd; 
    845845    apr_interval_time_t cur_timeout; 
    846846 
     847 
    847848    apr_pool_create(&p, conn->pool); 
    848849    apr_pool_tag(p, "request"); 
    849850    r = apr_pcalloc(p, sizeof(request_rec)); 
     851    AP_READ_REQUEST_ENTRY((intptr_t)r, (uintptr_t)conn); 
    850852    r->pool            = p; 
    851853    r->connection      = conn; 
    852854    r->server          = conn->base_server; 
     
    896898            ap_update_child_status(conn->sbh, SERVER_BUSY_LOG, r); 
    897899            ap_run_log_transaction(r); 
    898900            apr_brigade_destroy(tmp_bb); 
    899             return r
     901            goto traceout
    900902        } 
    901903 
    902904        apr_brigade_destroy(tmp_bb); 
    903         return NULL; 
     905        r = NULL; 
     906        goto traceout; 
    904907    } 
    905908 
    906909    /* We may have been in keep_alive_timeout mode, so toggle back 
     
    923926            ap_update_child_status(conn->sbh, SERVER_BUSY_LOG, r); 
    924927            ap_run_log_transaction(r); 
    925928            apr_brigade_destroy(tmp_bb); 
    926             return r
     929            goto traceout
    927930        } 
    928931 
    929932        if (apr_table_get(r->headers_in, "Transfer-Encoding") 
     
    951954            ap_update_child_status(conn->sbh, SERVER_BUSY_LOG, r); 
    952955            ap_run_log_transaction(r); 
    953956            apr_brigade_destroy(tmp_bb); 
    954             return r
     957            goto traceout
    955958        } 
    956959    } 
    957960 
     
    10051008        ap_send_error_response(r, 0); 
    10061009        ap_update_child_status(conn->sbh, SERVER_BUSY_LOG, r); 
    10071010        ap_run_log_transaction(r); 
    1008         return r
     1011        goto traceout
    10091012    } 
    10101013 
    10111014    if ((access_status = ap_run_post_read_request(r))) { 
    10121015        ap_die(access_status, r); 
    10131016        ap_update_child_status(conn->sbh, SERVER_BUSY_LOG, r); 
    10141017        ap_run_log_transaction(r); 
    1015         return NULL; 
     1018        r = NULL; 
     1019        goto traceout; 
    10161020    } 
    10171021 
    10181022    if (((expect = apr_table_get(r->headers_in, "Expect")) != NULL) 
     
    10341038            ap_send_error_response(r, 0); 
    10351039            ap_update_child_status(conn->sbh, SERVER_BUSY_LOG, r); 
    10361040            ap_run_log_transaction(r); 
    1037             return r
     1041            goto traceout
    10381042        } 
    10391043    } 
    10401044 
     1045    AP_READ_REQUEST_SUCCESS((uintptr_t)r, (char *)r->method, (char *)r->uri, (char *)r->server->defn_name, r->status); 
    10411046    return r; 
     1047    traceout: 
     1048    AP_READ_REQUEST_FAILURE((uintptr_t)r); 
     1049    return r; 
    10421050} 
    10431051 
    10441052/* if a request with a body creates a subrequest, clone the original request's 
  • modules/http/http_request.c

    old new  
    249249     * Use this hook with extreme care and only if you know what you are 
    250250     * doing. 
    251251     */ 
     252    AP_PROCESS_REQUEST_ENTRY((uintptr_t)r, r->uri); 
    252253    if (ap_extended_status) 
    253254        ap_time_process_request(r->connection->sbh, START_PREQUEST); 
    254255    access_status = ap_run_quick_handler(r, 0);  /* Not a look-up request */ 
     
    284285    ap_run_log_transaction(r); 
    285286    if (ap_extended_status) 
    286287        ap_time_process_request(r->connection->sbh, STOP_PREQUEST); 
     288 
     289    AP_PROCESS_REQUEST_RETURN((uintptr_t)r, r->uri, access_status); 
    287290} 
    288291 
    289292static apr_table_t *rename_original_env(apr_pool_t *p, apr_table_t *t) 
     
    465468    request_rec *new = internal_internal_redirect(new_uri, r); 
    466469    int access_status; 
    467470 
     471    AP_INTERNAL_REDIRECT(r->uri, new_uri); 
     472 
    468473    /* ap_die was already called, if an error occured */ 
    469474    if (!new) { 
    470475        return; 
  • modules/proxy/mod_proxy.c

    old new  
    849849        ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, r->server, 
    850850                     "Running scheme %s handler (attempt %d)", 
    851851                     scheme, attempts); 
     852        AP_PROXY_RUN(r, worker, conf, url, attempts); 
    852853        access_status = proxy_run_scheme_handler(r, worker, conf, 
    853854                                                 url, NULL, 0); 
    854855        if (access_status == OK) 
     
    902903    } 
    903904 
    904905    proxy_run_request_status(&access_status, r); 
     906    AP_PROXY_RUN_FINISHED(r, attempts, access_status); 
    905907 
    906908    return access_status; 
    907909} 
  • modules/mappers/mod_rewrite.c

    old new  
    478478 
    479479    conf = ap_get_module_config(r->server->module_config, &rewrite_module); 
    480480 
    481     if (!conf->rewritelogfp || level > conf->rewriteloglevel) { 
     481    if ((!conf->rewritelogfp || level > conf->rewriteloglevel) && 
     482        !AP_REWRITE_LOG_ENABLED()) { 
    482483        return; 
    483484    } 
    484485 
     
    512513                           perdir ? "] ": "", 
    513514                           text); 
    514515 
     516    AP_REWRITE_LOG((uintptr_t)r, level, r->main ? 0 : 1, (char *)ap_get_server_name(r), logline); 
     517 
     518    if (!conf->rewritelogfp || level > conf->rewriteloglevel) 
     519        return; 
     520 
    515521    rv = apr_global_mutex_lock(rewrite_log_lock); 
    516522    if (rv != APR_SUCCESS) { 
    517523        ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, 
  • apache_probes.d

    old new  
     1provider ap { 
     2  /* Explicit, core */ 
     3  probe internal__redirect(char *, char *); 
     4  probe process__request__entry(uintptr_t, char *); 
     5  probe process__request__return(uintptr_t, char *, uint32_t); 
     6  probe read__request__entry(uintptr_t, uintptr_t); 
     7  probe read__request__success(uintptr_t, char *, char *, char *, uint32_t); 
     8  probe read__request__failure(uintptr_t); 
     9 
     10  /* Explicit, modules */ 
     11  probe rewrite__log(uintptr_t, int, int, char *, char *); 
     12  probe proxy__run(uintptr_t); 
     13  probe proxy__run__finished(uintptr_t); 
     14 
     15  /* Implicit, APR hooks */ 
     16  probe translate_name__entry(); 
     17  probe translate_name__dispatch__invoke(char *); 
     18  probe translate_name__dispatch__complete(char *, uint32_t); 
     19  probe translate_name__return(uint32_t); 
     20  probe map_to_storage__entry(); 
     21  probe map_to_storage__dispatch__invoke(char *); 
     22  probe map_to_storage__dispatch__complete(char *, uint32_t); 
     23  probe map_to_storage__return(uint32_t); 
     24  probe check_user_id__entry(); 
     25  probe check_user_id__dispatch__invoke(char *); 
     26  probe check_user_id__dispatch__complete(char *, uint32_t); 
     27  probe check_user_id__return(uint32_t); 
     28  probe fixups__entry(); 
     29  probe fixups__dispatch__invoke(char *); 
     30  probe fixups__dispatch__complete(char *, uint32_t); 
     31  probe fixups__return(uint32_t); 
     32  probe type_checker__entry(); 
     33  probe type_checker__dispatch__invoke(char *); 
     34  probe type_checker__dispatch__complete(char *, uint32_t); 
     35  probe type_checker__return(uint32_t); 
     36  probe access_checker__entry(); 
     37  probe access_checker__dispatch__invoke(char *); 
     38  probe access_checker__dispatch__complete(char *, uint32_t); 
     39  probe access_checker__return(uint32_t); 
     40  probe auth_checker__entry(); 
     41  probe auth_checker__dispatch__invoke(char *); 
     42  probe auth_checker__dispatch__complete(char *, uint32_t); 
     43  probe auth_checker__return(uint32_t); 
     44  probe insert_filter__entry(); 
     45  probe insert_filter__dispatch__invoke(char *); 
     46  probe insert_filter__dispatch__complete(char *, uint32_t); 
     47  probe insert_filter__return(uint32_t); 
     48  probe create_connection__entry(); 
     49  probe create_connection__dispatch__invoke(char *); 
     50  probe create_connection__dispatch__complete(char *, uint32_t); 
     51  probe create_connection__return(uint32_t); 
     52  probe pre_connection__entry(); 
     53  probe pre_connection__dispatch__invoke(char *); 
     54  probe pre_connection__dispatch__complete(char *, uint32_t); 
     55  probe pre_connection__return(uint32_t); 
     56  probe process_connection__entry(); 
     57  probe process_connection__dispatch__invoke(char *); 
     58  probe process_connection__dispatch__complete(char *, uint32_t); 
     59  probe process_connection__return(uint32_t); 
     60  probe create_request__entry(); 
     61  probe create_request__dispatch__invoke(char *); 
     62  probe create_request__dispatch__complete(char *, uint32_t); 
     63  probe create_request__return(uint32_t); 
     64  probe header_parser__entry(); 
     65  probe header_parser__dispatch__invoke(char *); 
     66  probe header_parser__dispatch__complete(char *, uint32_t); 
     67  probe header_parser__return(uint32_t); 
     68  probe pre_config__entry(); 
     69  probe pre_config__dispatch__invoke(char *); 
     70  probe pre_config__dispatch__complete(char *, uint32_t); 
     71  probe pre_config__return(uint32_t); 
     72  probe test_config__entry(); 
     73  probe test_config__dispatch__invoke(char *); 
     74  probe test_config__dispatch__complete(char *, uint32_t); 
     75  probe test_config__return(uint32_t); 
     76  probe post_config__entry(); 
     77  probe post_config__dispatch__invoke(char *); 
     78  probe post_config__dispatch__complete(char *, uint32_t); 
     79  probe post_config__return(uint32_t); 
     80  probe open_logs__entry(); 
     81  probe open_logs__dispatch__invoke(char *); 
     82  probe open_logs__dispatch__complete(char *, uint32_t); 
     83  probe open_logs__return(uint32_t); 
     84  probe child_init__entry(); 
     85  probe child_init__dispatch__invoke(char *); 
     86  probe child_init__dispatch__complete(char *, uint32_t); 
     87  probe child_init__return(uint32_t); 
     88  probe handler__entry(); 
     89  probe handler__dispatch__invoke(char *); 
     90  probe handler__dispatch__complete(char *, uint32_t); 
     91  probe handler__return(uint32_t); 
     92  probe quick_handler__entry(); 
     93  probe quick_handler__dispatch__invoke(char *); 
     94  probe quick_handler__dispatch__complete(char *, uint32_t); 
     95  probe quick_handler__return(uint32_t); 
     96  probe optional_fn_retrieve__entry(); 
     97  probe optional_fn_retrieve__dispatch__invoke(char *); 
     98  probe optional_fn_retrieve__dispatch__complete(char *, uint32_t); 
     99  probe optional_fn_retrieve__return(uint32_t); 
     100  probe get_mgmt_items__entry(); 
     101  probe get_mgmt_items__dispatch__invoke(char *); 
     102  probe get_mgmt_items__dispatch__complete(char *, uint32_t); 
     103  probe get_mgmt_items__return(uint32_t); 
     104  probe pre_mpm__entry(); 
     105  probe pre_mpm__dispatch__invoke(char *); 
     106  probe pre_mpm__dispatch__complete(char *, uint32_t); 
     107  probe pre_mpm__return(uint32_t); 
     108  probe default_port__entry(); 
     109  probe default_port__dispatch__invoke(char *); 
     110  probe default_port__dispatch__complete(char *, uint32_t); 
     111  probe default_port__return(uint32_t); 
     112  probe http_scheme__entry(); 
     113  probe http_scheme__dispatch__invoke(char *); 
     114  probe http_scheme__dispatch__complete(char *, uint32_t); 
     115  probe http_scheme__return(uint32_t); 
     116  probe error_log__entry(); 
     117  probe error_log__dispatch__invoke(char *); 
     118  probe error_log__dispatch__complete(char *, uint32_t); 
     119  probe error_log__return(uint32_t); 
     120  probe log_transaction__entry(); 
     121  probe log_transaction__dispatch__invoke(char *); 
     122  probe log_transaction__dispatch__complete(char *, uint32_t); 
     123  probe log_transaction__return(uint32_t); 
     124  probe monitor__entry(); 
     125  probe monitor__dispatch__invoke(char *); 
     126  probe monitor__dispatch__complete(char *, uint32_t); 
     127  probe monitor__return(uint32_t); 
     128  probe post_read_request__entry(); 
     129  probe post_read_request__dispatch__invoke(char *); 
     130  probe post_read_request__dispatch__complete(char *, uint32_t); 
     131  probe post_read_request__return(uint32_t); 
     132  probe get_suexec_identity__entry(); 
     133  probe get_suexec_identity__dispatch__invoke(char *); 
     134  probe get_suexec_identity__dispatch__complete(char *, uint32_t); 
     135  probe get_suexec_identity__return(uint32_t); 
     136  probe insert_error_filter__entry(); 
     137  probe insert_error_filter__dispatch__invoke(char *); 
     138  probe insert_error_filter__dispatch__complete(char *, uint32_t); 
     139  probe insert_error_filter__return(uint32_t); 
     140 
     141  /* Implicit, APR hooks for proxy */ 
     142  probe scheme_handler__entry(); 
     143  probe scheme_handler__dispatch__invoke(char *); 
     144  probe scheme_handler__dispatch__complete(char *, uint32_t); 
     145  probe scheme_handler__return(uint32_t); 
     146  probe canon_handler__entry(); 
     147  probe canon_handler__dispatch__invoke(char *); 
     148  probe canon_handler__dispatch__complete(char *, uint32_t); 
     149  probe canon_handler__return(uint32_t); 
     150  probe pre_request__entry(); 
     151  probe pre_request__dispatch__invoke(char *); 
     152  probe pre_request__dispatch__complete(char *, uint32_t); 
     153  probe pre_request__return(uint32_t); 
     154  probe post_request__entry(); 
     155  probe post_request__dispatch__invoke(char *); 
     156  probe post_request__dispatch__complete(char *, uint32_t); 
     157  probe post_request__return(uint32_t); 
     158 
     159  /* Implicit, APR hooks for dav */ 
     160  probe gather_propsets__entry(); 
     161  probe gather_propsets__dispatch__invoke(char *); 
     162  probe gather_propsets__dispatch__complete(char *, uint32_t); 
     163  probe gather_propsets__return(uint32_t); 
     164  probe find_liveprop__entry(); 
     165  probe find_liveprop__dispatch__invoke(char *); 
     166  probe find_liveprop__dispatch__complete(char *, uint32_t); 
     167  probe find_liveprop__return(uint32_t); 
     168  probe insert_all_liveprops__entry(); 
     169  probe insert_all_liveprops__dispatch__invoke(char *); 
     170  probe insert_all_liveprops__dispatch__complete(char *, uint32_t); 
     171  probe insert_all_liveprops__return(uint32_t); 
     172}; 
  • include/ap_config.h

    old new  
    238238#define AP_NONBLOCK_WHEN_MULTI_LISTEN 1 
    239239#endif 
    240240 
     241#if AP_ENABLE_DTRACE && HAVE_SYS_SDT_H 
     242#include <sys/sdt.h> 
     243#else 
     244#undef _DTRACE_VERSION 
     245#endif 
     246#include "apache_probes.h" 
     247 
    241248/* TODO - We need to put OS detection back to make all the following work */ 
    242249 
    243250#if defined(SUNOS4) || defined(IRIX) || defined(NEXT) || defined(AUX3) \ 
  • configure.in

    old new  
    372372strings.h \ 
    373373sys/prctl.h \ 
    374374sys/processor.h \ 
    375 sys/sem.h 
     375sys/sem.h \ 
     376sys/sdt.h 
    376377) 
    377378AC_HEADER_SYS_WAIT 
    378379 
     
    438439        [if test "$withval" = "yes"; then AC_MSG_ERROR('option --with-sslport requires a value (the SSL TCP port number)'); else SSLPORT="$withval"; fi], 
    439440        [SSLPORT=443]) 
    440441 
     442AC_ARG_ENABLE(dtrace,APACHE_HELP_STRING(--enable-dtrace,Enable DTrace probes), 
     443[ 
     444  enable_dtrace=$enableval 
     445  APR_ADDTO(CPPFLAGS, -DAPR_DTRACE_PROVIDER) 
     446], 
     447[ 
     448  enable_dtrace=no 
     449]) 
     450 
     451DTRACE=true 
     452if test $enable_dtrace = "yes" -a "$ac_cv_header_sys_sdt_h" = "yes"; then 
     453    AC_DEFINE(AP_ENABLE_DTRACE, 1, 
     454              [Enable DTrace probes]) 
     455    DTRACE="/usr/sbin/dtrace $DTRACEFLAGS" 
     456    test -f include/apache_probes.h || $DTRACE -h -s apache_probes.d -o include/apache_probes.h 
     457fi 
     458APACHE_SUBST(DTRACE) 
     459 
    441460APR_CHECK_APR_DEFINE(APR_HAVE_IPV6) 
    442461 
    443462AC_ARG_ENABLE(v4-mapped,APACHE_HELP_STRING(--enable-v4-mapped,Allow IPv6 sockets to handle IPv4 connections), 
     
    495514AC_SUBST(PILDFLAGS) 
    496515 
    497516prefix="$orig_prefix" 
     517cat >static_modules.mk<<EOF 
     518MODULE_OBJS = \\ 
     519EOF 
    498520APACHE_ENABLE_MODULES 
    499521 
    500522dnl reading config stubs 
     
    675697HTTPD_VERSION=`$abs_srcdir/build/get-version.sh all $abs_srcdir/include/ap_release.h AP_SERVER` 
    676698AC_SUBST(HTTPD_VERSION) 
    677699 
     700echo >>static_modules.mk 
    678701AC_OUTPUT($APACHE_OUTPUT_FILES docs/conf/httpd.conf docs/conf/extra/httpd-autoindex.conf docs/conf/extra/httpd-dav.conf docs/conf/extra/httpd-default.conf docs/conf/extra/httpd-info.conf docs/conf/extra/httpd-languages.conf docs/conf/extra/httpd-manual.conf docs/conf/extra/httpd-mpm.conf docs/conf/extra/httpd-multilang-errordoc.conf docs/conf/extra/httpd-ssl.conf docs/conf/extra/httpd-userdir.conf docs/conf/extra/httpd-vhosts.conf include/ap_config_layout.h support/apxs support/apachectl support/dbmmanage support/envvars-std support/log_server_status support/logresolve.pl support/phf_abuse_log.cgi support/split-logfile build/rules.mk build/pkg/pkginfo build/config_vars.sh,[true],[ 
    679702  APACHE_GEN_MAKEFILES 
    680703]) 
  • build/library.mk

    old new  
    1717# The build environment was provided by Sascha Schumann. 
    1818 
    1919LTLIBRARY_OBJECTS = $(LTLIBRARY_SOURCES:.c=.lo) $(LTLIBRARY_OBJECTS_X) 
     20LTLIBRARY_CS = $(LTLIBRARY_SOURCES:%.h=) 
     21LTLIBRARY_OS = $(LTLIBRARY_CS:.c=.o) 
     22LTLIBRARY_FP_OS = $(LTLIBRARY_OS:%=$(builddir)/%) 
     23LIBNAME=$(LTLIBRARY_NAME:.la=.o) 
     24LIBLIST=$(LTLIBRARY_NAME:.la=.objects) 
    2025 
    2126$(LTLIBRARY_NAME): $(LTLIBRARY_OBJECTS) $(LTLIBRARY_DEPENDENCIES) 
    2227        $(LINK) -static $(LTLIBRARY_LDFLAGS) $(LTLIBRARY_OBJECTS) $(LTLIBRARY_LIBADD) 
     28        echo $(LTLIBRARY_FP_OS) > $(LIBLIST) 
     29        ld -r -o $(LIBNAME) $(LTLIBRARY_OS) 
  • acinclude.m4

    old new  
    175175  fi 
    176176 
    177177  if test -z "$module_standalone"; then 
     178    cat >$modpath_current/probes_$1.libtool.hack<<EOF 
     179# probes_$1.lo - a libtool object file 
     180# Generated by ltmain.sh - GNU libtool 1.5.20 (1.1220.2.287 2005/08/31 18:54:15) 
     181# 
     182# Please DO NOT delete this file! 
     183# It is necessary for linking the library. 
     184 
     185# Name of the PIC object. 
     186pic_object='.libs/probes_$1.o' 
     187 
     188# Name of the non-PIC object. 
     189non_pic_object='probes_$1.o' 
     190EOF 
    178191    if test -z "$2"; then 
    179192      # The filename of a convenience library must have a "lib" prefix: 
    180193      libname="libmod_$1.la" 
    181194      BUILTIN_LIBS="$BUILTIN_LIBS $modpath_current/$libname" 
    182195      modpath_static="$modpath_static $libname" 
     196      realobjects=`echo $objects | sed -e 's/\.lo/.o/g;'` 
     197      pathobjects=`echo $objects | sed -e 's/\.lo/.o/g;' -e "s#^#$modpath_current/#;" -e "s# # $modpath_current/#g;"` 
     198      if test -r "$modpath_current/mod_$1.d"; then 
     199        echo "Found probes for $1 [$DTRACE]" 
     200        BUILD_DTRACE="\$(DTRACE) \$(DTRACEFLAGS) -G -s \$(top_srcdir)/apache_probes.d -s probes_$1.d $realobjects && cp probes_$1.o .libs/probes_$1.o && cp probes_$1.libtool.hack probes_$1.lo" 
     201        DTRACE_OBJ=probes_$1.lo 
     202        $DTRACE $DTRACEFLAGS -h -o $modpath_current/probes_$1.h -s $modpath_current/probes_$1.d 
     203      else 
     204        BUILD_DTRACE="\$(DTRACE) \$(DTRACEFLAGS) -G -o probes_$1.o -s \$(top_srcdir)/apache_probes.d $realobjects && cp probes_$1.o .libs/probes_$1.o && cp probes_$1.libtool.hack probes_$1.lo" 
     205        DTRACE_OBJ=probes_$1.o 
     206      fi 
    183207      cat >>$modpath_current/modules.mk<<EOF 
    184208$libname: $objects 
    185209        \$(MOD_LINK) $objects $5 
     210        ld -r -o `echo $libname | sed -e 's/\.la/.o/;'` $realobjects 
     211        echo "$pathobjects" > `echo $libname | sed -e 's/\.la/.objects/;'` 
    186212EOF 
    187213    else 
    188214      apache_need_shared=yes 
    189215      libname="mod_$1.la" 
    190216      shobjects=`echo $objects | sed 's/\.lo/.slo/g'` 
     217      realobjects=`echo $objects | sed -e 's/\.lo/.o/g;' -e 's/^/.libs\//g;' -e 's/ / .libs\//g;'` 
    191218      modpath_shared="$modpath_shared $libname" 
     219      if test -r "$modpath_current/probes_$1.d"; then 
     220        echo "Found probes for $1 [$DTRACE]" 
     221        BUILD_DTRACE="\$(DTRACE) \$(DTRACEFLAGS) -G -s \$(top_srcdir)/apache_probes.d -s probes_$1.d $realobjects && cp probes_$1.o .libs/probes_$1.o && cp probes_$1.libtool.hack probes_$1.lo" 
     222        DTRACE_OBJ=probes_$1.lo 
     223        $DTRACE $DTRACEFLAGS -h -o $modpath_current/probes_$1.h -s $modpath_current/probes_$1.d 
     224        RELINK="\$(CC) -shared \$(CFLAGS) -o .libs/mod_$1.so $realobjects .libs/probes_$1.o $5" 
     225      else 
     226        BUILD_DTRACE="\$(DTRACE) \$(DTRACEFLAGS) -G -o probes_$1.o -s \$(top_srcdir)/apache_probes.d $realobjects && cp probes_$1.o .libs/probes_$1.o && cp probes_$1.libtool.hack probes_$1.lo" 
     227        DTRACE_OBJ=probes_$1.lo 
     228        RELINK="\$(CC) -shared \$(CFLAGS) -o .libs/mod_$1.so $realobjects .libs/probes_$1.o $5" 
     229      fi 
    192230      cat >>$modpath_current/modules.mk<<EOF 
    193231$libname: $shobjects 
    194         \$(SH_LINK) -rpath \$(libexecdir) -module -avoid-version $4 $objects $5 
     232        $BUILD_DTRACE 
     233        \$(SH_LINK) -rpath \$(libexecdir) -module -avoid-version $4 $objects $DTRACE_OBJ $5 
     234        $RELINK 
    195235EOF 
    196236    fi 
    197237  fi 
Note: See TracBrowser for help on using the browser.