Skip to content
  1. Apr 12, 1998
  2. Apr 11, 1998
    • Jim Jagielski's avatar
      Note the renaming in Announcement · 4c8af790
      Jim Jagielski authored
      
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@80880 13f79535-47bb-0310-9956-ffa450edef68
      4c8af790
    • dgaudet's avatar
      update depend · afe279d8
      dgaudet authored
      
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@80879 13f79535-47bb-0310-9956-ffa450edef68
      afe279d8
    • dgaudet's avatar
      overzealous renaming · 3e2b84c6
      dgaudet authored
      
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@80878 13f79535-47bb-0310-9956-ffa450edef68
      3e2b84c6
    • Ralf S. Engelschall's avatar
      Bad URL. · 527204ac
      Ralf S. Engelschall authored
      
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@80877 13f79535-47bb-0310-9956-ffa450edef68
      527204ac
    • Ralf S. Engelschall's avatar
      Ok guys, now that the HIDE-veto is solved and 1.3b6-dev looks better than ever · 7fa7efa3
      Ralf S. Engelschall authored
      (hopefully ;-), let us concentrate on the proposed 1.3b6 release next Friday.
      
      
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@80876 13f79535-47bb-0310-9956-ffa450edef68
      7fa7efa3
    • Jim Jagielski's avatar
      · df280405
      Jim Jagielski authored
      PR:
      Obtained from:
      Submitted by:	Jim Jagielski
      Reviewed by:
      Hmmm... well, it looks like some people would like the capability
      of having PrintPath look not only in PATH for an executable (makes
      sense) so I've allowed PrintPath to look somewhere else. With this,
      TestCompile becomes a bit simpler, and faster when TestCompile
      fails since it now longer needs to muck around with the whole PATH.
      
      
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@80875 13f79535-47bb-0310-9956-ffa450edef68
      df280405
    • Ralf S. Engelschall's avatar
      Today I had personal access to a UnixWare machine and the result are these · 13a13876
      Ralf S. Engelschall authored
      slight changes to again make UnixWare happy.
      
      
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@80874 13f79535-47bb-0310-9956-ffa450edef68
      13a13876
    • Jim Jagielski's avatar
      · 4d8a13d3
      Jim Jagielski authored
      PR:
      Obtained from:
      Submitted by:	Jim Jagielski
      Reviewed by:
      Have TestCompile use PrintPath to get around those platforms that still
      create executables with link errors. In those cases, the binary
      exists but isn't executable, so testing -f isn't good enough.
      However, -x isn't portable :/  PrintPath handles this, so we use
      that.
      
      
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@80873 13f79535-47bb-0310-9956-ffa450edef68
      4d8a13d3
    • Ralf S. Engelschall's avatar
      Document the BIG SYMBOL RENAMING change. · 2d5bc7ee
      Ralf S. Engelschall authored
      
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@80872 13f79535-47bb-0310-9956-ffa450edef68
      2d5bc7ee
    • Ralf S. Engelschall's avatar
      This is the new backward-compatibility header · c8163bbd
      Ralf S. Engelschall authored
      containing the defines for the old symbols.
      
      
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@80870 13f79535-47bb-0310-9956-ffa450edef68
      c8163bbd
    • Ralf S. Engelschall's avatar
      THE BIG SYMBOL RENAMING FOR APACHE 1.3 · 53c91913
      Ralf S. Engelschall authored
      The used renaming configuration:
       ===================================================================
      bind_address                   ap_bind_address
      coredump_dir                   ap_coredump_dir
      daemons_limit                  ap_daemons_limit
      daemons_max_free               ap_daemons_max_free
      daemons_min_free               ap_daemons_min_free
      daemons_to_start               ap_daemons_to_start
      excess_requests_per_child      ap_excess_requests_per_child
      group_id                       ap_group_id
      listenbacklog                  ap_listenbacklog
      listeners                      ap_listeners
      lock_fname                     ap_lock_fname
      max_requests_per_child         ap_max_requests_per_child
      pid_fname                      ap_pid_fname
      restart_time                   ap_restart_time
      scoreboard_fname               ap_scoreboard_fname
      server_argv0                   ap_server_argv0
      server_confname                ap_server_confname
      server_post_read_config        ap_server_post_read_config
      server_pre_read_config         ap_server_pre_read_config
      server_root                    ap_server_root
      standalone                     ap_standalone
      threads_per_child              ap_threads_per_child
      user_id                        ap_user_id
      user_name                      ap_user_name
      suexec_enabled                 ap_suexec_enabled
      day_snames                     ap_day_snames
      dummy_mutex                    ap_dummy_mutex
      month_snames                   ap_month_snames
      rfc1413_timeout                ap_rfc1413_timeout
      scoreboard_image               ap_scoreboard_image
      MD5Final                       ap_MD5Final
      MD5Init                        ap_MD5Init
      MD5Update                      ap_MD5Update
      add_cgi_vars                   ap_add_cgi_vars
      add_common_vars                ap_add_common_vars
      add_module                     ap_add_module
      add_named_module               ap_add_named_module
      add_per_dir_conf               ap_add_per_dir_conf
      add_per_url_conf               ap_add_per_url_conf
      allow_options                  ap_allow_options
      allow_overrides                ap_allow_overrides
      append_arrays                  ap_append_arrays
      array_cat                      ap_array_cat
      auth_name                      ap_auth_name
      auth_type                      ap_auth_type
      basic_http_header              ap_basic_http_header
      bclose                         ap_bclose
      bcreate                        ap_bcreate
      bfilbuf                        ap_bfilbuf
      bfileno                        ap_bfileno
      bflsbuf                        ap_bflsbuf
      bflush                         ap_bflush
      bgetopt                        ap_bgetopt
      bgets                          ap_bgets
      bhalfduplex                    ap_bhalfduplex
      block_alarms                   ap_block_alarms
      blookc                         ap_blookc
      bnonblock                      ap_bnonblock
      bonerror                       ap_bonerror
      bpushfd                        ap_bpushfd
      bputs                          ap_bputs
      bprintf                        ap_bprintf
      bread                          ap_bread
      bsetflag                       ap_bsetflag
      bsetopt                        ap_bsetopt
      bskiplf                        ap_bskiplf
      bvputs                         ap_bvputs
      bwrite                         ap_bwrite
      bytes_in_free_blocks           ap_bytes_in_free_blocks
      bytes_in_pool                  ap_bytes_in_pool
      call_exec                      ap_call_exec
      can_exec                       ap_can_exec
      cfg_closefile                  ap_cfg_closefile
      cfg_getc                       ap_cfg_getc
      cfg_getline                    ap_cfg_getline
      chdir_file                     ap_chdir_file
      check_access                   ap_check_access
      check_alarm                    ap_check_alarm
      check_auth                     ap_check_auth
      check_cmd_context              ap_check_cmd_context
      check_user_id                  ap_check_user_id
      checkmask                      ap_checkmask
      child_exit_modules             ap_child_exit_modules
      child_init_modules             ap_child_init_modules
      child_terminate                ap_child_terminate
      cleanup_for_exec               ap_cleanup_for_exec
      clear_module_list              ap_clear_module_list
      clear_pool                     ap_clear_pool
      clear_table                    ap_clear_table
      close_piped_log                ap_close_piped_log
      construct_server               ap_construct_server
      construct_url                  ap_construct_url
      copy_array                     ap_copy_array
      copy_array_hdr                 ap_copy_array_hdr
      copy_table                     ap_copy_table
      core_reorder_directories       ap_core_reorder_directories
      count_dirs                     ap_count_dirs
      create_environment             ap_create_environment
      create_per_dir_config          ap_create_per_dir_config
      create_request_config          ap_create_request_config
      default_port_for_request       ap_default_port_for_request
      default_port_for_scheme        ap_default_port_for_scheme
      default_type                   ap_default_type
      destroy_pool                   ap_destroy_pool
      destroy_sub_req                ap_destroy_sub_req
      die                            ap_die
      discard_request_body           ap_discard_request_body
      document_root                  ap_document_root
      each_byterange                 ap_each_byterange
      error_log2stderr               ap_error_log2stderr
      escape_html                    ap_escape_html
      escape_path_segment            ap_escape_path_segment
      escape_shell_cmd               ap_escape_shell_cmd
      exists_scoreboard_image        ap_exists_scoreboard_image
      finalize_request_protocol      ap_finalize_request_protocol
      finalize_sub_req_protocol      ap_finalize_sub_req_protocol
      find_command                   ap_find_command
      find_command_in_modules        ap_find_command_in_modules
      find_last_token                ap_find_last_token
      find_linked_module             ap_find_linked_module
      find_module_name               ap_find_module_name
      find_path_info                 ap_find_path_info
      find_pool                      ap_find_pool
      find_token                     ap_find_token
      find_types                     ap_find_types
      fini_vhost_config              ap_fini_vhost_config
      fnmatch                        ap_fnmatch
      force_library_loading          ap_force_library_loading
      get_basic_auth_pw              ap_get_basic_auth_pw
      get_client_block               ap_get_client_block
      get_gmtoff                     ap_get_gmtoff
      get_local_host                 ap_get_local_host
      get_module_config              ap_get_module_config
      get_remote_host                ap_get_remote_host
      get_remote_logname             ap_get_remote_logname
      get_server_name                ap_get_server_name
      get_server_port                ap_get_server_port
      get_time                       ap_get_time
      get_token                      ap_get_token
      get_virthost_addr              ap_get_virthost_addr
      getparents                     ap_getparents
      getword                        ap_getword
      getword_conf                   ap_getword_conf
      getword_conf_nc                ap_getword_conf_nc
      getword_nc                     ap_getword_nc
      getword_nulls                  ap_getword_nulls
      getword_nulls_nc               ap_getword_nulls_nc
      getword_white                  ap_getword_white
      getword_white_nc               ap_getword_white_nc
      gm_timestr_822                 ap_gm_timestr_822
      gname2id                       ap_gname2id
      handle_command                 ap_handle_command
      hard_timeout                   ap_hard_timeout
      header_parse                   ap_header_parse
      ht_time                        ap_ht_time
      ind                            ap_ind
      index_of_response              ap_index_of_response
      init_alloc                     ap_init_alloc
      init_modules                   ap_init_modules
      init_vhost_config              ap_init_vhost_config
      init_virtual_host              ap_init_virtual_host
      internal_redirect              ap_internal_redirect
      internal_redirect_handler      ap_internal_redirect_handler
      invoke_handler                 ap_invoke_handler
      is_directory                   ap_is_directory
      is_fnmatch                     ap_is_fnmatch
      is_initial_req                 ap_is_initial_req
      is_matchexp                    ap_is_matchexp
      is_url                         ap_is_url
      keepalive_timeout              ap_keepalive_timeout
      kill_cleanup                   ap_kill_cleanup
      kill_cleanups_for_fd           ap_kill_cleanups_for_fd
      kill_cleanups_for_socket       ap_kill_cleanups_for_socket
      kill_timeout                   ap_kill_timeout
      limit_section                  ap_limit_section
      log_assert                     ap_log_assert
      log_pid                        ap_log_pid
      log_printf                     ap_log_printf
      log_reason                     ap_log_reason
      log_transaction                ap_log_transaction
      log_unixerr                    ap_log_unixerr
      make_array                     ap_make_array
      make_dirstr                    ap_make_dirstr
      make_dirstr_parent             ap_make_dirstr_parent
      make_dirstr_prefix             ap_make_dirstr_prefix
      make_full_path                 ap_make_full_path
      make_sub_pool                  ap_make_sub_pool
      make_table                     ap_make_table
      matches_request_vhost          ap_matches_request_vhost
      meets_conditions               ap_meets_conditions
      merge_per_dir_configs          ap_merge_per_dir_configs
      no2slash                       ap_no2slash
      note_auth_failure              ap_note_auth_failure
      note_basic_auth_failure        ap_note_basic_auth_failure
      note_cleanups_for_fd           ap_note_cleanups_for_fd
      note_cleanups_for_file         ap_note_cleanups_for_file
      note_cleanups_for_socket       ap_note_cleanups_for_socket
      note_digest_auth_failure       ap_note_digest_auth_failure
      note_subprocess                ap_note_subprocess
      null_cleanup                   ap_null_cleanup
      open_logs                      ap_open_logs
      open_piped_log                 ap_open_piped_log
      overlay_tables                 ap_overlay_tables
      palloc                         ap_palloc
      parseHTTPdate                  ap_parseHTTPdate
      parse_htaccess                 ap_parse_htaccess
      parse_uri                      ap_parse_uri
      parse_uri_components           ap_parse_uri_components
      parse_hostinfo_components      ap_parse_hostinfo_components
      parse_vhost_addrs              ap_parse_vhost_addrs
      pcalloc                        ap_pcalloc
      pcfg_open_custom               ap_pcfg_open_custom
      pcfg_openfile                  ap_pcfg_openfile
      pclosedir                      ap_pclosedir
      pclosef                        ap_pclosef
      pclosesocket                   ap_pclosesocket
      pduphostent                    ap_pduphostent
      pfclose                        ap_pfclose
      pfdopen                        ap_pfdopen
      pfopen                         ap_pfopen
      pgethostbyname                 ap_pgethostbyname
      pool_is_ancestor               ap_pool_is_ancestor
      pool_join                      ap_pool_join
      popendir                       ap_popendir
      popenf                         ap_popenf
      pregcomp                       ap_pregcomp
      pregfree                       ap_pregfree
      pregsub                        ap_pregsub
      process_request                ap_process_request
      process_resource_config        ap_process_resource_config
      proxy_add_header               ap_proxy_add_header
      proxy_c2hex                    ap_proxy_c2hex
      proxy_cache_check              ap_proxy_cache_check
      proxy_cache_error              ap_proxy_cache_error
      proxy_cache_tidy               ap_proxy_cache_tidy
      proxy_cache_update             ap_proxy_cache_update
      proxy_canon_netloc             ap_proxy_canon_netloc
      proxy_canonenc                 ap_proxy_canonenc
      proxy_connect_handler          ap_proxy_connect_handler
      proxy_date_canon               ap_proxy_date_canon
      proxy_del_header               ap_proxy_del_header
      proxy_doconnect                ap_proxy_doconnect
      proxy_ftp_canon                ap_proxy_ftp_canon
      proxy_ftp_handler              ap_proxy_ftp_handler
      proxy_garbage_coll             ap_proxy_garbage_coll
      proxy_garbage_init             ap_proxy_garbage_init
      proxy_get_header               ap_proxy_get_header
      proxy_hash                     ap_proxy_hash
      proxy_hex2c                    ap_proxy_hex2c
      proxy_hex2sec                  ap_proxy_hex2sec
      proxy_host2addr                ap_proxy_host2addr
      proxy_http_canon               ap_proxy_http_canon
      proxy_http_handler             ap_proxy_http_handler
      proxy_is_domainname            ap_proxy_is_domainname
      proxy_is_hostname              ap_proxy_is_hostname
      proxy_is_ipaddr                ap_proxy_is_ipaddr
      proxy_is_word                  ap_proxy_is_word
      proxy_liststr                  ap_proxy_liststr
      proxy_log_uerror               ap_proxy_log_uerror
      proxy_read_headers             ap_proxy_read_headers
      proxy_sec2hex                  ap_proxy_sec2hex
      proxy_send_fb                  ap_proxy_send_fb
      proxy_send_headers             ap_proxy_send_headers
      proxyerror                     ap_proxyerror
      psignature                     ap_psignature
      psocket                        ap_psocket
      pstrcat                        ap_pstrcat
      pstrdup                        ap_pstrdup
      pstrndup                       ap_pstrndup
      psprintf                       ap_psprintf
      pvsprintf                      ap_pvsprintf
      push_array                     ap_push_array
      rationalize_mtime              ap_rationalize_mtime
      read_config                    ap_read_config
      read_request                   ap_read_request
      register_cleanup               ap_register_cleanup
      register_other_child           ap_register_other_child
      remove_module                  ap_remove_module
      requires                       ap_requires
      reset_timeout                  ap_reset_timeout
      response_code_string           ap_response_code_string
      rfc1413                        ap_rfc1413
      rflush                         ap_rflush
      rind                           ap_rind
      rprintf                        ap_rprintf
      rputc                          ap_rputc
      rputs                          ap_rputs
      run_cleanup                    ap_run_cleanup
      run_fixups                     ap_run_fixups
      run_post_read_request          ap_run_post_read_request
      run_sub_req                    ap_run_sub_req
      rvputs                         ap_rvputs
      rwrite                         ap_rwrite
      satisfies                      ap_satisfies
      scan_script_header_err         ap_scan_script_header_err
      scan_script_header_err_buff    ap_scan_script_header_err_buff
      send_error_response            ap_send_error_response
      send_fb                        ap_send_fb
      send_fb_length                 ap_send_fb_length
      send_fd                        ap_send_fd
      send_fd_length                 ap_send_fd_length
      send_header_field              ap_send_header_field
      send_http_header               ap_send_http_header
      send_http_options              ap_send_http_options
      send_http_trace                ap_send_http_trace
      send_mmap                      ap_send_mmap
      send_size                      ap_send_size
      server_root_relative           ap_server_root_relative
      set_byterange                  ap_set_byterange
      set_callback_and_alarm         ap_set_callback_and_alarm
      set_content_length             ap_set_content_length
      set_etag                       ap_set_etag
      set_file_slot                  ap_set_file_slot
      set_flag_slot                  ap_set_flag_slot
      set_keepalive                  ap_set_keepalive
      set_last_modified              ap_set_last_modified
      set_module_config              ap_set_module_config
      set_name_virtual_host          ap_set_name_virtual_host
      set_string_slot                ap_set_string_slot
      set_string_slot_lower          ap_set_string_slot_lower
      set_sub_req_protocol           ap_set_sub_req_protocol
      setup_client_block             ap_setup_client_block
      setup_prelinked_modules        ap_setup_prelinked_modules
      should_client_block            ap_should_client_block
      show_directives                ap_show_directives
      show_modules                   ap_show_modules
      soft_timeout                   ap_soft_timeout
      some_auth_required             ap_some_auth_required
      spawn_child_err                ap_spawn_child_err
      spawn_child_err_buff           ap_spawn_child_err_buff
      srm_command_loop               ap_srm_command_loop
      start_restart                  ap_start_restart
      start_shutdown                 ap_start_shutdown
      str_tolower                    ap_str_tolower
      strcasecmp_match               ap_strcasecmp_match
      strcmp_match                   ap_strcmp_match
      sub_req_lookup_file            ap_sub_req_lookup_file
      sub_req_lookup_uri             ap_sub_req_lookup_uri
      sync_scoreboard_image          ap_sync_scoreboard_image
      table_add                      ap_table_add
      table_addn                     ap_table_addn
      table_do                       ap_table_do
      table_get                      ap_table_get
      table_merge                    ap_table_merge
      table_mergen                   ap_table_mergen
      table_set                      ap_table_set
      table_setn                     ap_table_setn
      table_unset                    ap_table_unset
      time_process_request           ap_time_process_request
      tm2sec                         ap_tm2sec
      translate_name                 ap_translate_name
      uname2id                       ap_uname2id
      unblock_alarms                 ap_unblock_alarms
      unescape_url                   ap_unescape_url
      unparse_uri_components         ap_unparse_uri_components
      unregister_other_child         ap_unregister_other_child
      update_child_status            ap_update_child_status
      update_mtime                   ap_update_mtime
      update_vhost_from_headers      ap_update_vhost_from_headers
      update_vhost_given_ip          ap_update_vhost_given_ip
      util_init                      ap_util_init
      util_uri_init                  ap_util_uri_init
      uudecode                       ap_uudecode
      vbprintf                       ap_vbprintf
      apapi_get_server_built         ap_get_server_built
      apapi_get_server_version       ap_get_server_version
      aplog_error                    ap_log_error
      log_error                      ap_log_error_old
      os_escape_path                 ap_escape_path
      os_canonical_filename          ap_canonical_filename
      acquire_mutex                  ap_acquire_mutex
      create_mutex                   ap_create_mutex
      destroy_mutex                  ap_destroy_mutex
      open_mutex                     ap_open_mutex
      release_mutex                  ap_release_mutex
      os_is_path_absolute            ap_is_path_absolute
      prelinked_modules              ap_prelinked_modules
      preloaded_modules              ap_preloaded_modules
      
      
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@80869 13f79535-47bb-0310-9956-ffa450edef68
      53c91913
    • Ralf S. Engelschall's avatar
      And the updated compat.h header file. · d3bbeee8
      Ralf S. Engelschall authored
      
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@80867 13f79535-47bb-0310-9956-ffa450edef68
      d3bbeee8
    • Ralf S. Engelschall's avatar
    • Ralf S. Engelschall's avatar
      Ignore objects from SHARED_CORE situation... · 1f94503f
      Ralf S. Engelschall authored
      
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@80865 13f79535-47bb-0310-9956-ffa450edef68
      1f94503f
    • Marc Slemko's avatar
      Fix FAQ entry on problems with POST, plus a few cleanups. The old · eb475a09
      Marc Slemko authored
      entry is extremely misleading, and answering a Q that isn't really FA,
      and I see someone posting somewhere every week who tries this to
      fix their "method not allowed" problems.
      
      PR:
      Obtained from:
      Submitted by:
      Reviewed by:
      
      
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@80864 13f79535-47bb-0310-9956-ffa450edef68
      eb475a09
  3. Apr 10, 1998
    • brian's avatar
      PR: · 7f8ae8b6
      brian authored
      In Roy's "swab the decks" message he unilaterally and without consultation moved
      several names from active to emeritae.
      
      
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@80860 13f79535-47bb-0310-9956-ffa450edef68
      7f8ae8b6
    • brian's avatar
      PR: · 8e753938
      brian authored
      Consensus reached.  Comments on the vote will be kept in the CVS logs of course.
      
      
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@80859 13f79535-47bb-0310-9956-ffa450edef68
      8e753938
    • Ralf S. Engelschall's avatar
      Munich, Germany: sunny wheater... · f7c2d292
      Ralf S. Engelschall authored
      
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@80858 13f79535-47bb-0310-9956-ffa450edef68
      f7c2d292
    • Ralf S. Engelschall's avatar
      · 6b6c3ae4
      Ralf S. Engelschall authored
      DSO support for SVR4-based Unix platforms
       =========================================
      
      What it provides:
      -----------------
      
      This patch is another milestone in the DSO support for Apache 1.3. It adds
      Dynamic Shared Object (DSO) support for mostly all SVR4-based Unix platforms
      (We cannot test all of them of course, but Martin has at least tested it under
      SINIX-SVR4). Why is this patch a little bit larger then one would expect?
      Mostly because this support goes hand in hand by providing a special variant
      of the Apache core program. Read on if you are interested.
      
      Background:
      -----------
      
      Usually the DSO mechanism was designed to be used for loading library code
      dynamically into the address space of a running program. Here the library code
      is a stand-alone program which has no knowledge of the program it is loaded
      into. Technically speaking this means that no symbols of the loading program
      are references in the DSO. The resolving is done only the other way: Symbols
      of the library are resolved for the program (either automatically by ld.so
      when one uses DSO-based libraries or manually via dlopen()/dlsym() when using
      DSO-based program extensions.
      
      Now when you use the latter situation the DSO usually contains a program
      extension. This extension usually uses symbols from the program it extends:
      from the API. Same here for Apache: The core provides API symbols and the
      extensions are Apache modules which use those symbols. Now comes the problem:
      when you load a DSO via dlopen() the loader has to resolve the symbols in this
      DSO. Symbols from other DSO-based libraries can be resolved the same way ld.so
      does. No problem. But to be able to resolve the API symbols the loader must be
      able to access them. Technically speaking one would say the API symbols have
      to be "exported". This is not the same as just being a "global" symbol,
      although a lot of platforms treat this equally. Actually it is this way: When
      the linker creates an executable program it does not treats global symbols as
      exported symbols. But because this is needed for extending the program via
      DSO, modern linkers usually either provide a flag (-rdynamic under Linux,
      etc.) or are smart enough to do the exportation automatically (Solaris,
      FreeBSD, etc.)
      
      But as life goes, there are linkers out there who neither provide a flag to
      force exportation nor are smart enough to do it automatically. FOR INSTANCE
      THE LINKER UNDER SVR4! That's the problem this patch has to solve.
      
      Solution:
      ---------
      
      We have to make sure the global symbols from the Apache core program are
      forced to be exported by the linker. The obvious way is this: Create a
      dummy.so with dummy references for _ALL_ global symbols and link httpd against
      this DSO. This works but has some drawbacks: You have to make sure the dummy.c
      source is always in sync with the list of global symbols (ARGL!) and you have
      to make sure the Unix loader can find "dummy.so" when starting httpd (Hmmmm).
      So Martin and I've searched for a better solution. And because I'm a Perl
      hacker I immediately tried to figure out why Perl is able to use the DSO
      mechanism without problems under SVR4 while Apache has such problems.  The
      answer: Perl 5 uses a nifty trick. As we already know when program code stays
      in a DSO the global symbols have to be exportable. So, when we put the
      complete Apache core (the stuff httpd is usually build from) into a DSO we are
      finished. Because this is both portable and causes no sideeffects like having
      to sync a dummy.c source, etc.
      
      While the theory is simple, the correct solution was not such simple. Martin
      and I needed some iterations to provide this patch because we wanted to make
      it perfect and clean. That's why it's a little bit longer....
      
      The Patch:
      ----------
      
      The patch does the following:
      
      1. It introduces a new Rule: SHARED_CORE
      
      2. It makes the main() function from http_main.c configurable
         and sets it to ap_main if SHARED_CORE is active.
      
      3. It adds two additional stand-alone main() functions to
         http_main.c which are triggered by SHARED_CORE_BOOTSTRAP and
         SHARED_CORE_TIESTATIC.
      
      4. It splits the TARGET in Makefile.tmpl into subtargets.
         One for the standard way of creating just httpd from the .a files. And one
         for creating the alternative tuple: httpd/libhttpd.ep/libhttpd.so. The
         first one is SHARED_CORE_BOOTSTRAP+http_main.c, the second one is
         SHARED_CORE_TIESTATIC+httpd_main.c and the third one are the .a files
         which usually form the httpd.
      
      5. The DSO section in Configure was extended to force
         SHARED_CORE under those platforms like SVR4 which essentially
         require SHARED_CORE to provide the SHARED_MODULE stuff. Bingo!
      
      6. Some minor tweaks to APACI etc. to automatically install
         the SHARED_CORE generated stuff.
      
      Of course the complete stuff is disabled per default, so you don't see
      anything from it if SHARED_CORE is not activated.  But just for fun you even
      can use it under platforms who do not require it. But currently you gain
      nothing here.
      
      I've tested this stuff under FreeBSD, Linux and Solaris to make sure none of
      the existing stuff gets broken.  Martin has tested it under various SVR4
      platforms to make sure it really solves our DSO problem for restrictive
      platforms like SVR4. The chance is high that this way we even can provide DSO
      support under AIX in the future.
      
      
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@80857 13f79535-47bb-0310-9956-ffa450edef68
      6b6c3ae4
    • Marc Slemko's avatar
      Be more explicit about when IRIXNIS=yes is required. On recent · 01f2dc0a
      Marc Slemko authored
      systems, libsun is empty and on some it has been rumored to cause
      problems if you link against it.
      
      Inspired by PR: 2050
      
      
      git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@80856 13f79535-47bb-0310-9956-ffa450edef68
      01f2dc0a
  4. Apr 09, 1998
  5. Apr 08, 1998