Keep Server Online
If you find the Apache Lounge, the downloads and overall help useful, please express your satisfaction with a donation.
or
A donation makes a contribution towards the costs, the time and effort that's going in this site and building.
Thank You! Steffen
Your donations will help to keep this site alive and well, and continuing building binaries. Apache Lounge is not sponsored.
| |
|
Topic: mod_perl problem |
|
Author |
|
roblassche
Joined: 10 Apr 2013 Posts: 3 Location: Netherlands, IJsselstein
|
Posted: Tue 23 Apr '13 1:28 Post subject: mod_perl problem |
|
|
I use MinGW, Visual C 10 express and MS SDK.
I compiled Perl and Apache (with apr) from source, it works.
The binary mod_perl, downloaded from apachelounge works with MY compiled version of Perl and Apache.
I also want to compile mod_perl from sources, but fails.
This is the error during linking:
icrosoft (R) Program Maintenance Utility Version 10.00.30319.01
Copyright (C) Microsoft Corporation. All rights reserved.
mod_perl.lo:mod_perl.c:(.text+0x1a): undefined reference to `_imp__apr_dynamic_fn_register'
mod_perl.lo:mod_perl.c:(.text+0x32): undefined reference to `_imp__ap_server_config_defines'
mod_perl.lo:mod_perl.c:(.text+0x3d): undefined reference to `_imp__apr_array_push@4'
mod_perl.lo:mod_perl.c:(.text+0x51): undefined reference to `_imp__apr_pstrdup@8'
mod_perl.lo:mod_perl.c:(.text+0x7b): undefined reference to `_imp__ap_hook_pre_config@16'
mod_perl.lo:mod_perl.c:(.text+0xa3): undefined reference to `_imp__ap_hook_open_logs@16'
mod_perl.lo:mod_perl.c:(.text+0xcb): undefined reference to `_imp__ap_hook_post_config@16'
mod_perl.lo:mod_perl.c:(.text+0xf3): undefined reference to `_imp__ap_hook_handler@16'
mod_perl.lo:mod_perl.c:(.text+0x141): undefined reference to `_imp__ap_hook_insert_filter@16'
mod_perl.lo:mod_perl.c:(.text+0x18f): undefined reference to `_imp__ap_register_output_filter@16'
mod_perl.lo:mod_perl.c:(.text+0x1b9): undefined reference to `_imp__ap_register_input_filter@16'
mod_perl.lo:mod_perl.c:(.text+0x22b): undefined reference to `_imp__ap_hook_pre_connection@16'
mod_perl.lo:mod_perl.c:(.text+0x253): undefined reference to `_imp__ap_hook_create_request@16'
mod_perl.lo:mod_perl.c:(.text+0x27b): undefined reference to `_imp__ap_hook_post_read_request@16'
mod_perl.lo:mod_perl.c:(.text+0x2a3): undefined reference to `_imp__ap_hook_header_parser@16'
mod_perl.lo:mod_perl.c:(.text+0x2cb): undefined reference to `_imp__ap_hook_child_init@16'
mod_perl.lo:mod_perl.c:(.text+0x2ed): undefined reference to `_imp__apr_pool_cleanup_null'
mod_perl.lo:mod_perl.c:(.text+0x30a): undefined reference to `_imp__apr_pool_cleanup_register@16'
mod_perl.lo:mod_perl.c:(.text+0x36c): undefined reference to `_imp__apr_pool_clear@4'
mod_perl.lo:mod_perl.c:(.text+0x679): undefined reference to `_imp__ap_add_version_component@8'
mod_perl.lo:mod_perl.c:(.text+0x914): undefined reference to `_imp__ap_server_root'
mod_perl.lo:mod_perl.c:(.text+0x96f): undefined reference to `_imp__apr_filepath_merge@20'
mod_perl.lo:mod_perl.c:(.text+0x9bd): undefined reference to `_imp__apr_stat@16'
mod_perl.lo:mod_perl.c:(.text+0xc5d): undefined reference to `_imp__apr_pool_create_ex@16'
mod_perl.lo:mod_perl.c:(.text+0xc78): undefined reference to `_imp__apr_pool_tag@8'
mod_perl.lo:mod_perl.c:(.text+0xcf6): undefined reference to `_imp__apr_pool_cleanup_null'
mod_perl.lo:mod_perl.c:(.text+0xd18): undefined reference to `_imp__apr_pool_cleanup_register@16'
mod_perl.lo:mod_perl.c:(.text+0xd56): undefined reference to `_imp__ap_mpm_query@8'
mod_perl.lo:mod_perl.c:(.text+0xe5f): undefined reference to `_imp__apr_palloc@8'
c:/mingw/bin/../lib/gcc/mingw32/4.7.2/../../../../mingw32/bin/ld.exe: mod_perl.lo: bad reloc address 0xc in section `.data'
collect2.exe: fout: ld gaf exit-status 1 terug
dmake: Error code 129, while making 'mod_perl.so'
NMAKE : fatal error U1077: 'cd' : return code '0xff'
Stop.
I grepped for some of the undefined reference and only found something in the .h file:
./httpd-2.2.24/srclib/apr/include/apr_file_info.h
/** Cause apr_filepath_merge to fail if addpath is above rootpath
/** Cause apr_filepath_merge to fail if addpath is above rootpath,
/** Fail apr_filepath_merge if the merged path is relative */
/** Fail apr_filepath_merge if the merged path is absolute */
APR_DECLARE(apr_status_t) apr_filepath_merge(char **newpath,
./httpd-2.2.24/srclib/apr/include/arch/win32/apr_arch_file_io.h
* apr_filepath_root or apr_filepath_merge, this fn determines
/* The apr_filepath_merge wants to canonicalize the cwd to the
***
Do you have a clue what is wrong? |
|
Back to top |
|
roblassche
Joined: 10 Apr 2013 Posts: 3 Location: Netherlands, IJsselstein
|
Posted: Wed 24 Apr '13 1:01 Post subject: mod_perl and different compilers |
|
|
I solved the LINK errors.
Perl was compiled with MinGW and Apache with MS VC10.
I could NOT find in the sources something with _imp__.
I think this is caused by the MinGW compiler.
Anyway, I compiled Perl with MS VC10 and then compile mod_perl from source. The link errors are GONE and mod_perl.so is created.
I will test mod_perl later on, and document the steps involved in compiling and linking. |
|
Back to top |
|
glsmith Moderator
Joined: 16 Oct 2007 Posts: 2268 Location: Sun Diego, USA
|
Posted: Wed 24 Apr '13 12:12 Post subject: |
|
|
_imp__ means imported function ... verses an exported function. The actual function name is what is after the _imp__.
_imp__apr_dynamic_fn_register |
|
Back to top |
|
|
|
|
|
|