You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@harmony.apache.org by Alexey Varlamov <al...@gmail.com> on 2006/09/18 11:08:10 UTC
Re: [drlvm] is_name_lowercase() in natives_support.cpp
Geir,
The DRLVM build is broken now on gcc3.3.3 (SUSE9):
build.native.cpp:
[cc] 135 total files to be compiled.
[cc] drlvm/vm/vmcore/src/util/natives_support.cpp: In
[cc] function `apr_dso_handle_t* natives_load_library(const
char*, bool*,
[cc] NativeLoadStatus*)':
[cc] drlvm/vm/vmcore/src/util/natives_support.cpp:287: error: jump
[cc] to label `NATIVES_LOAD_LIBRARY_EXIT'
[cc] drlvm/vm/vmcore/src/util/natives_support.cpp:268: error:
[cc] from here
[cc] drlvm/vm/vmcore/src/util/natives_support.cpp:281: error:
[cc] crosses initialization of `jint res'
[cc] drlvm/vm/vmcore/src/util/natives_support.cpp:273: error:
[cc] crosses initialization of `Global_Env*ge'
[cc] drlvm/vm/vmcore/src/util/natives_support.cpp:287: error: jump
[cc] to label `NATIVES_LOAD_LIBRARY_EXIT'
[cc] drlvm/vm/vmcore/src/util/natives_support.cpp:255: error:
[cc] from here
[cc] drlvm/vm/vmcore/src/util/natives_support.cpp:281: error:
[cc] crosses initialization of `jint res'
[cc] drlvm/vm/vmcore/src/util/natives_support.cpp:273: error:
[cc] crosses initialization of `Global_Env*ge'
[cc] drlvm/vm/vmcore/src/util/natives_support.cpp:258: error:
[cc] crosses initialization of `NativeLibInfo*pinfo'
[cc] drlvm/vm/vmcore/src/util/natives_support.cpp:287: error: jump
[cc] to label `NATIVES_LOAD_LIBRARY_EXIT'
[cc] drlvm/vm/vmcore/src/util/natives_support.cpp:234: error:
[cc] from here
[cc] drlvm/vm/vmcore/src/util/natives_support.cpp:281: error:
[cc] crosses initialization of `jint res'
[cc] drlvm/vm/vmcore/src/util/natives_support.cpp:273: error:
[cc] crosses initialization of `Global_Env*ge'
[cc] drlvm/vm/vmcore/src/util/natives_support.cpp:258: error:
[cc] crosses initialization of `NativeLibInfo*pinfo'
[cc] drlvm/vm/vmcore/src/util/natives_support.cpp:241: error:
[cc] crosses initialization of `apr_status_t apr_status'
BUILD FAILED
Besides, you introduced inconsistency in names, ones registered inside
of ClassLoader::LoadNativeLibrary and those actually loaded in
natives_load_library().
So, if one will try loading the same lib with different names on
Windows via j.l.System.loadLibrary(), there will be unexpected
UnsatisfiedLinkError.
I guess that awkward usage of port_filepath_canonical() was intended
to solve exactly this problem.
So we still need better solution.
--
Alexey
2006/9/15, Geir Magnusson Jr. <ge...@pobox.com>:
> Looking at things, yes, it's the ICU dll, which has uppercase letters in
> the filename.
>
> My plan is to just convert all paths to lowercase.
>
> Any problems people can see?
>
> geir
>
> ---------------------------------------------------------------------
> Terms of use : http://incubator.apache.org/harmony/mailing.html
> To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> For additional commands, e-mail: harmony-dev-help@incubator.apache.org
>
>
---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org
Re: [drlvm] is_name_lowercase() in natives_support.cpp
Posted by "Geir Magnusson Jr." <ge...@pobox.com>.
Alexey Varlamov wrote:
> Geir,
>
> The DRLVM build is broken now on gcc3.3.3 (SUSE9):
>
> build.native.cpp:
> [cc] 135 total files to be compiled.
> [cc] drlvm/vm/vmcore/src/util/natives_support.cpp: In
> [cc] function `apr_dso_handle_t* natives_load_library(const
> char*, bool*,
> [cc] NativeLoadStatus*)':
> [cc] drlvm/vm/vmcore/src/util/natives_support.cpp:287: error: jump
> [cc] to label `NATIVES_LOAD_LIBRARY_EXIT'
> [cc] drlvm/vm/vmcore/src/util/natives_support.cpp:268: error:
> [cc] from here
> [cc] drlvm/vm/vmcore/src/util/natives_support.cpp:281: error:
> [cc] crosses initialization of `jint res'
> [cc] drlvm/vm/vmcore/src/util/natives_support.cpp:273: error:
> [cc] crosses initialization of `Global_Env*ge'
> [cc] drlvm/vm/vmcore/src/util/natives_support.cpp:287: error: jump
> [cc] to label `NATIVES_LOAD_LIBRARY_EXIT'
> [cc] drlvm/vm/vmcore/src/util/natives_support.cpp:255: error:
> [cc] from here
> [cc] drlvm/vm/vmcore/src/util/natives_support.cpp:281: error:
> [cc] crosses initialization of `jint res'
> [cc] drlvm/vm/vmcore/src/util/natives_support.cpp:273: error:
> [cc] crosses initialization of `Global_Env*ge'
> [cc] drlvm/vm/vmcore/src/util/natives_support.cpp:258: error:
> [cc] crosses initialization of `NativeLibInfo*pinfo'
> [cc] drlvm/vm/vmcore/src/util/natives_support.cpp:287: error: jump
> [cc] to label `NATIVES_LOAD_LIBRARY_EXIT'
> [cc] drlvm/vm/vmcore/src/util/natives_support.cpp:234: error:
> [cc] from here
> [cc] drlvm/vm/vmcore/src/util/natives_support.cpp:281: error:
> [cc] crosses initialization of `jint res'
> [cc] drlvm/vm/vmcore/src/util/natives_support.cpp:273: error:
> [cc] crosses initialization of `Global_Env*ge'
> [cc] drlvm/vm/vmcore/src/util/natives_support.cpp:258: error:
> [cc] crosses initialization of `NativeLibInfo*pinfo'
> [cc] drlvm/vm/vmcore/src/util/natives_support.cpp:241: error:
> [cc] crosses initialization of `apr_status_t apr_status'
>
> BUILD FAILED
How bizarre. Propose a fix then. All I was trying to do was localize
the free() under windows.
>
> Besides, you introduced inconsistency in names, ones registered inside
> of ClassLoader::LoadNativeLibrary and those actually loaded in
> natives_load_library().
> So, if one will try loading the same lib with different names on
> Windows via j.l.System.loadLibrary(), there will be unexpected
> UnsatisfiedLinkError.
> I guess that awkward usage of port_filepath_canonical() was intended
> to solve exactly this problem.
I can't see how. Seems like port_filepath_canonical() was being used in
LoadNativeLibrary() was to create a full path, and would PREPEND THE
CURRENT DIRECTORY to it. So in our case, where we are wanting to let
apr_dso_load() get a dll/so, it *can't* presume current directory.
That said, I do agree that we should move the lower-casing done in
natives_load_library() and just demand that callers get their path right
as part of the API for natives_load_library()
If you want to add that to your fix above, that would be great.
Sorry for the trouble. I'll do it if you want.
geir
>
> So we still need better solution.
>
> --
> Alexey
>
> 2006/9/15, Geir Magnusson Jr. <ge...@pobox.com>:
>> Looking at things, yes, it's the ICU dll, which has uppercase letters in
>> the filename.
>>
>> My plan is to just convert all paths to lowercase.
>>
>> Any problems people can see?
>>
>> geir
>>
>> ---------------------------------------------------------------------
>> Terms of use : http://incubator.apache.org/harmony/mailing.html
>> To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
>> For additional commands, e-mail: harmony-dev-help@incubator.apache.org
>>
>>
>
> ---------------------------------------------------------------------
> Terms of use : http://incubator.apache.org/harmony/mailing.html
> To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> For additional commands, e-mail: harmony-dev-help@incubator.apache.org
>
---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org
Re: [drlvm] is_name_lowercase() in natives_support.cpp
Posted by Alexey Varlamov <al...@gmail.com>.
2006/9/18, Geir Magnusson Jr. <ge...@pobox.com>:
>
>
> Artem Aliev wrote:
> > Geir,
> >
> > The current DRLVM build is still failed.
>
> Because I was waiting for Alexey :)
>
> I'll take your patch though.
Geir,
Sorry for late response, I was busy offline. As now compilation
problem is fixed, I will look into the "canonical" issue in some time.
--
Alexey
---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org
Re: [drlvm] is_name_lowercase() in natives_support.cpp
Posted by "Geir Magnusson Jr." <ge...@pobox.com>.
Artem Aliev wrote:
> Geir,
>
> The current DRLVM build is still failed.
Because I was waiting for Alexey :)
I'll take your patch though.
geir
> I attach patch for the current state of VM.
> Could you please apply it or commit new version of natives_support.cpp
>
> Thanks
> Artem
>
>
> On 9/18/06, Alexey Varlamov <al...@gmail.com> wrote:
>> Geir,
>>
>> The DRLVM build is broken now on gcc3.3.3 (SUSE9):
>>
>> build.native.cpp:
>> [cc] 135 total files to be compiled.
>> [cc] drlvm/vm/vmcore/src/util/natives_support.cpp: In
>> [cc] function `apr_dso_handle_t* natives_load_library(const
>
> ------------------------------------------------------------------------
>
> Index: vm/vmcore/src/util/natives_support.cpp
> ===================================================================
> --- vm/vmcore/src/util/natives_support.cpp (revision 447423)
> +++ vm/vmcore/src/util/natives_support.cpp (working copy)
> @@ -203,7 +203,12 @@
>
> char *localLibName = (char *) library_name;
> NativeLibraryHandle returnCode = NULL;
> -
> + NativeLibInfo* pfound;
> + NativeLibInfo* pinfo;
> + NativeLibraryHandle handle;
> + apr_status_t apr_status;
> + Global_Env *ge;
> + jint UNREF res;
> #ifdef PLATFORM_NT
> TRACE2("init", "### lib name = " << library_name);
>
> @@ -221,7 +226,7 @@
>
> jni_libs.lock._lock();
>
> - NativeLibInfo* pfound = search_library_list(localLibName);
> + pfound = search_library_list(localLibName);
>
> if (pfound)
> {
> @@ -237,8 +242,7 @@
> *just_loaded = true;
>
> // library was not loaded previously, try to load it
> - NativeLibraryHandle handle;
> - apr_status_t apr_status = port_dso_load_ex(&handle, localLibName,
> + apr_status = port_dso_load_ex(&handle, localLibName,
> PORT_DSO_BIND_DEFER, jni_libs.ppool);
> if (APR_SUCCESS != apr_status)
> {
> @@ -255,7 +259,7 @@
> goto NATIVES_LOAD_LIBRARY_EXIT;
> }
>
> - NativeLibInfo* pinfo = (NativeLibInfo*)apr_palloc(jni_libs.ppool, sizeof(NativeLibInfo));
> + pinfo = (NativeLibInfo*)apr_palloc(jni_libs.ppool, sizeof(NativeLibInfo));
> if (NULL == pinfo)
> {
> apr_dso_unload(handle);
> @@ -270,7 +274,7 @@
>
> pinfo->handle = handle;
>
> - Global_Env *ge = VM_Global_State::loader_env;
> + ge = VM_Global_State::loader_env;
> pinfo->name = ge->string_pool.lookup(localLibName);
>
> pinfo->next = jni_libs.lib_info_list;
> @@ -278,7 +282,7 @@
>
> jni_libs.lock._unlock();
>
> - jint UNREF res = find_call_JNI_OnLoad(pinfo->handle); // What to do with result???
> + res = find_call_JNI_OnLoad(pinfo->handle); // What to do with result???
>
> *pstatus = APR_SUCCESS;
>
>
>
> ------------------------------------------------------------------------
>
> ---------------------------------------------------------------------
> Terms of use : http://incubator.apache.org/harmony/mailing.html
> To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> For additional commands, e-mail: harmony-dev-help@incubator.apache.org
---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org
Re: [drlvm] is_name_lowercase() in natives_support.cpp
Posted by Artem Aliev <ar...@gmail.com>.
Geir,
The current DRLVM build is still failed.
I attach patch for the current state of VM.
Could you please apply it or commit new version of natives_support.cpp
Thanks
Artem
On 9/18/06, Alexey Varlamov <al...@gmail.com> wrote:
> Geir,
>
> The DRLVM build is broken now on gcc3.3.3 (SUSE9):
>
> build.native.cpp:
> [cc] 135 total files to be compiled.
> [cc] drlvm/vm/vmcore/src/util/natives_support.cpp: In
> [cc] function `apr_dso_handle_t* natives_load_library(const