Re: [PATCH] ltdl: set libltdl_cv_need_uscore to yes on OS/2
Hi, On Nov 27, 2014, at 4:53 AM, KO Myung-Hun kom...@gmail.com wrote: Gary V. Vaughan wrote: On 27 Nov 2014, at 02:47, KO Myung-Hun kom...@gmail.com wrote: I agree. Gary V. Vaughan wrote: I pushed the core of a new macro that does exactly that to M4 master just now. Would you let me know whether this works correctly on OS2 for you please? Of course. Unfortunately, however, it does not work. dlopen() in configure fails due to 'file not found'. Thanks for checking. Can you tell me why it fails (module is not compiled correctly; path argument to dlopen() is wrong), and maybe suggest what would fix it, please? I've look into this problem. Module is not built. To build it, some additional variables are required. They are soname, libname, output_objdir. And archive_cmds on OS/2 consists of multi lines separated by ~. So when using it, quotation is needed. And to eval it the function such as func_execute_cmds is needed. In addition, make sure .libs exist before building a module. Finally, please remember that OS/2 does not support DLLs whose base name is longer than 8 characters. Thanks for the swift and helpful feedback. I pushed some new changes that should address all of those issues. Please let me know if anything is still wrong, and in what way it is broken for you if so -- otherwise, I'll port this code into a new libtool macro and make the next libtool release for m4 master to depend on. I know I have some other issues you reported to work out in M4, but I'd like to clear this one up first so I can make the promised libtool release asap. Many thanks for your help! Cheers, -- Gary V. Vaughan (gary AT gnu DOT org)
Re: [PATCH] ltdl: set libltdl_cv_need_uscore to yes on OS/2
Hi/2. Gary V. Vaughan wrote: Hi, On Nov 27, 2014, at 4:53 AM, KO Myung-Hun kom...@gmail.com wrote: Gary V. Vaughan wrote: On 27 Nov 2014, at 02:47, KO Myung-Hun kom...@gmail.com wrote: I agree. Gary V. Vaughan wrote: I pushed the core of a new macro that does exactly that to M4 master just now. Would you let me know whether this works correctly on OS2 for you please? Of course. Unfortunately, however, it does not work. dlopen() in configure fails due to 'file not found'. Thanks for checking. Can you tell me why it fails (module is not compiled correctly; path argument to dlopen() is wrong), and maybe suggest what would fix it, please? I've look into this problem. Module is not built. To build it, some additional variables are required. They are soname, libname, output_objdir. And archive_cmds on OS/2 consists of multi lines separated by ~. So when using it, quotation is needed. And to eval it the function such as func_execute_cmds is needed. In addition, make sure .libs exist before building a module. Finally, please remember that OS/2 does not support DLLs whose base name is longer than 8 characters. Thanks for the swift and helpful feedback. I pushed some new changes that should address all of those issues. Please let me know if anything is still wrong, and in what way it is broken for you if so Great!!! It works perfectly. Thanks a lot. -- otherwise, I'll port this code into a new libtool macro and make the next libtool release for m4 master to depend on. Then, LT_FUNC_DLSYM_USCORE will be fixed ? I know I have some other issues you reported to work out in M4, but I'd like to clear this one up first so I can make the promised libtool release asap. No problem. Many thanks for your help! Thanks for your efforts. ^^ -- KO Myung-Hun Using Mozilla SeaMonkey 2.7.2 Under OS/2 Warp 4 for Korean with FixPak #15 In VirtualBox v4.1.32 on Intel Core i7-3615QM 2.30GHz with 8GB RAM Korean OS/2 User Community : http://www.ecomstation.co.kr
Re: [PATCH] ltdl: set libltdl_cv_need_uscore to yes on OS/2
Hi/2. Gary V. Vaughan wrote: Hi, Thanks for the report and the patch! On Nov 22, 2014, at 4:08 AM, KO Myung-Hun kom...@gmail.com wrote: On OS/2, dlopen() does not support a program. So libltdl_cv_need_uscore is set to unknown, but dlsym() requires an underscore prefix. So set libltdl_cv_need_uscore to yes on OS/2 if lt_cv_sys_symbol_underscore is yes and libltdl_cv_need_uscore is unknown. Actually, I think the real problem here is that LT_FUNC_DLSYM_USCORE is making the bad assumption that dlsym() only requires a leading symbol name underscore on machines where self dlopening works. Better than your suggested patch, we should really be checking whether dlsym of ordinary loadable module symbol names requires a leading underscore. I agree. I pushed the core of a new macro that does exactly that to M4 master just now. Would you let me know whether this works correctly on OS2 for you please? Of course. Unfortunately, however, it does not work. dlopen() in configure fails due to 'file not found'. -- KO Myung-Hun Using Mozilla SeaMonkey 2.7.2 Under OS/2 Warp 4 for Korean with FixPak #15 In VirtualBox v4.1.32 on Intel Core i7-3615QM 2.30GHz with 8GB RAM Korean OS/2 User Community : http://www.ecomstation.co.kr
Re: [PATCH] ltdl: set libltdl_cv_need_uscore to yes on OS/2
Hi! On 27 Nov 2014, at 02:47, KO Myung-Hun kom...@gmail.com wrote: Hi/2. Gary V. Vaughan wrote: Hi, Thanks for the report and the patch! On Nov 22, 2014, at 4:08 AM, KO Myung-Hun kom...@gmail.com wrote: On OS/2, dlopen() does not support a program. So libltdl_cv_need_uscore is set to unknown, but dlsym() requires an underscore prefix. So set libltdl_cv_need_uscore to yes on OS/2 if lt_cv_sys_symbol_underscore is yes and libltdl_cv_need_uscore is unknown. Actually, I think the real problem here is that LT_FUNC_DLSYM_USCORE is making the bad assumption that dlsym() only requires a leading symbol name underscore on machines where self dlopening works. Better than your suggested patch, we should really be checking whether dlsym of ordinary loadable module symbol names requires a leading underscore. I agree. I pushed the core of a new macro that does exactly that to M4 master just now. Would you let me know whether this works correctly on OS2 for you please? Of course. Unfortunately, however, it does not work. dlopen() in configure fails due to 'file not found'. Thanks for checking. Can you tell me why it fails (module is not compiled correctly; path argument to dlopen() is wrong), and maybe suggest what would fix it, please? Cheers, -- Gary V. Vaughan (gary AT gnu DOT org)
Re: [PATCH] ltdl: set libltdl_cv_need_uscore to yes on OS/2
Hi/2. Gary V. Vaughan wrote: Hi! On 27 Nov 2014, at 02:47, KO Myung-Hun kom...@gmail.com wrote: Hi/2. Gary V. Vaughan wrote: Hi, Thanks for the report and the patch! On Nov 22, 2014, at 4:08 AM, KO Myung-Hun kom...@gmail.com wrote: On OS/2, dlopen() does not support a program. So libltdl_cv_need_uscore is set to unknown, but dlsym() requires an underscore prefix. So set libltdl_cv_need_uscore to yes on OS/2 if lt_cv_sys_symbol_underscore is yes and libltdl_cv_need_uscore is unknown. Actually, I think the real problem here is that LT_FUNC_DLSYM_USCORE is making the bad assumption that dlsym() only requires a leading symbol name underscore on machines where self dlopening works. Better than your suggested patch, we should really be checking whether dlsym of ordinary loadable module symbol names requires a leading underscore. I agree. I pushed the core of a new macro that does exactly that to M4 master just now. Would you let me know whether this works correctly on OS2 for you please? Of course. Unfortunately, however, it does not work. dlopen() in configure fails due to 'file not found'. Thanks for checking. Can you tell me why it fails (module is not compiled correctly; path argument to dlopen() is wrong), and maybe suggest what would fix it, please? I've look into this problem. Module is not built. To build it, some additional variables are required. They are soname, libname, output_objdir. And archive_cmds on OS/2 consists of multi lines separated by ~. So when using it, quotation is needed. And to eval it the function such as func_execute_cmds is needed. In addition, make sure .libs exist before building a module. Finally, please remember that OS/2 does not support DLLs whose base name is longer than 8 characters. Thanks. -- KO Myung-Hun Using Mozilla SeaMonkey 2.7.2 Under OS/2 Warp 4 for Korean with FixPak #15 In VirtualBox v4.1.32 on Intel Core i7-3615QM 2.30GHz with 8GB RAM Korean OS/2 User Community : http://www.ecomstation.co.kr
[PATCH] ltdl: set libltdl_cv_need_uscore to yes on OS/2
On OS/2, dlopen() does not support a program. So libltdl_cv_need_uscore is set to unknown, but dlsym() requires an underscore prefix. So set libltdl_cv_need_uscore to yes on OS/2 if lt_cv_sys_symbol_underscore is yes and libltdl_cv_need_uscore is unknown. * m4/ltdl.m4 (LT_FUNC_DLSYM_USCORE): set libltdl_cv_need_uscore to yes on os2*. --- m4/ltdl.m4 | 5 + 1 file changed, 5 insertions(+) diff --git a/m4/ltdl.m4 b/m4/ltdl.m4 index eeb37ac..ce7b2b7 100644 --- a/m4/ltdl.m4 +++ b/m4/ltdl.m4 @@ -804,6 +804,11 @@ if test yes = $lt_cv_sys_symbol_underscore; then [libltdl_cv_need_uscore=no], [libltdl_cv_need_uscore=yes], [], [libltdl_cv_need_uscore=cross]) LIBS=$save_LIBS + if test x$libltdl_cv_need_uscore = xunknown; then + case $host_os in + os2*) libltdl_cv_need_uscore=yes ;; + esac + fi ]) fi fi -- 1.8.5.2