harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gregory Shimansky <gshiman...@gmail.com>
Subject Re: svn commit: r504950 - in /harmony/enhanced: classlib/trunk/depends/libs/linux.x86/ classlib/trunk/depends/libs/linux.x86_64/ classlib/trunk/make/ classlib/trunk/modules/text/ classlib/trunk/modules/text/src/main/native/text/unix/ classlib/trunk/modules...
Date Sat, 10 Feb 2007 21:37:57 GMT
Geir Magnusson Jr. wrote:
> You did more in this commit than the log suggests - did you mean to?

The only additional changes were prop changes in 
classlib/depends/libs/linux directories to ignore created symlinks and 
additional symlink for libicudata.so.34.

>> Author: gshimansky
>> Date: Thu Feb  8 08:48:40 2007
>> New Revision: 504950
>>
>> URL: http://svn.apache.org/viewvc?view=rev&rev=504950
>> Log:
>> Applied HARMONY-3133 [drlvm][classloader] Add check of field and 
>> method names for classfile of version lower than 49
>>
>> DRLVM tests passed on Ubuntu6 x86, Windows 2003 server x86 and SuSE9 
>> x86_64.
>> Classlib text passed on windows.
>>
>>
>> Modified:
>>     harmony/enhanced/classlib/trunk/depends/libs/linux.x86/   (props 
>> changed)
>>     harmony/enhanced/classlib/trunk/depends/libs/linux.x86_64/   
>> (props changed)
>>     harmony/enhanced/classlib/trunk/make/build-native.xml
>>     harmony/enhanced/classlib/trunk/modules/text/build.xml
>>     
>> harmony/enhanced/classlib/trunk/modules/text/src/main/native/text/unix/makefile 
>>
>>     
>> harmony/enhanced/classlib/trunk/modules/text/src/main/native/text/windows/makefile

>>
>>     harmony/enhanced/drlvm/trunk/build/make/components/vm/vmcore.xml
>>     harmony/enhanced/drlvm/trunk/build/make/targets/cunit.test.xml
>>     
>> harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Class_File_Loader.cpp 
>>
>>
>> Propchange: harmony/enhanced/classlib/trunk/depends/libs/linux.x86/
>> ------------------------------------------------------------------------------ 
>>
>> --- svn:ignore (added)
>> +++ svn:ignore Thu Feb  8 08:48:40 2007
>> @@ -0,0 +1,2 @@
>> +libicuuc.so
>> +libicudata.so
>>
>> Propchange: harmony/enhanced/classlib/trunk/depends/libs/linux.x86_64/
>> ------------------------------------------------------------------------------ 
>>
>> --- svn:ignore (added)
>> +++ svn:ignore Thu Feb  8 08:48:40 2007
>> @@ -0,0 +1,2 @@
>> +libicuuc.so
>> +libicudata.so
>>
>> Modified: harmony/enhanced/classlib/trunk/make/build-native.xml
>> URL: 
>> http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/make/build-native.xml?view=diff&rev=504950&r1=504949&r2=504950

>>
>> ============================================================================== 
>>
>> --- harmony/enhanced/classlib/trunk/make/build-native.xml (original)
>> +++ harmony/enhanced/classlib/trunk/make/build-native.xml Thu Feb  8 
>> 08:48:40 2007
>> @@ -154,6 +154,7 @@
>>      <!-- =================================
>>            target: overlay-oss
>>           ================================= -->
>> +    <property name="iculib.zip" 
>> location="${depends.oss}/icu4c-3.4-harmony.zip" />   
>>      <target name="overlay-oss">
>>          <ant dir="modules/luni" antfile="build.xml"
>>               target="overlay-oss" />
>> @@ -161,8 +162,10 @@
>>          <ant dir="modules/archive" antfile="build.xml"
>>           target="overlay-oss" />
>>         
>> -        <ant dir="modules/text" antfile="build.xml"
>> -             target="overlay-oss" />
>> +        <mkdir dir="${hy.hdk}/include/icu4c/unicode" />
>> +        <unzip src="${iculib.zip}" 
>> dest="${hy.hdk}/include/icu4c/unicode" />
>> +        <chmod dir="${hy.hdk}/include/icu4c/unicode" perm="ugo+r" />
>> +        <copy file="${hy.hdk}/include/icu4c/unicode/icuuc.lib" 
>> todir="${native.lib.target}" overwrite="yes"/>
>>      </target>
>>
>>      <!-- =================================
>> @@ -228,8 +231,7 @@
>>               target="clean-overlay-oss" />
>>           <ant dir="modules/archive" antfile="build.xml"
>>               target="clean-overlay-oss" />
>> -        <ant dir="modules/text" antfile="build.xml"
>> -             target="clean-overlay-oss" />
>> +    <delete dir="${hy.hdk}/include/icu4c" quiet="true" />
>>      </target>
>>
>>  </project>
>>
>> Modified: harmony/enhanced/classlib/trunk/modules/text/build.xml
>> URL: 
>> http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/text/build.xml?view=diff&rev=504950&r1=504949&r2=504950

>>
>> ============================================================================== 
>>
>> --- harmony/enhanced/classlib/trunk/modules/text/build.xml (original)
>> +++ harmony/enhanced/classlib/trunk/modules/text/build.xml Thu Feb  8 
>> 08:48:40 2007
>> @@ -37,8 +37,6 @@
>>          </or>
>>      </fileset>
>>
>> -    <property name="iculib.zip" 
>> location="${depends.oss}/icu4c-3.4-harmony.zip" />
>> -
>>      <property name="text.exclude.file" 
>> location="${hy.hdk}/build/text.exclude" />
>>
>>      <target name="build" depends="compile-java, copy-resources, 
>> build-jar" />
>> @@ -56,16 +54,6 @@
>>
>>      <!-- internal target for local and global test run sequence -->
>>      <target name="-test-module" depends="build, compile-tests, 
>> prepare-exclude, run-tests" />
>> -
>> -    <target name="overlay-oss">
>> -        <mkdir dir="${hy.text.src.main.native}/icu4c/unicode" />
>> -        <unzip src="${iculib.zip}" 
>> dest="${hy.text.src.main.native}/icu4c/unicode" />
>> -        <chmod dir="${hy.text.src.main.native}/icu4c/unicode" 
>> perm="ugo+r" />
>> -    </target>
>> -
>> -    <target name="clean-overlay-oss">
>> -        <delete dir="${hy.text.src.main.native}/icu4c" quiet="true" />
>> -    </target>
>>
>>      <!-- Build native code -->
>>      <target name="build-native" >
>>
>> Modified: 
>> harmony/enhanced/classlib/trunk/modules/text/src/main/native/text/unix/makefile 
>>
>> URL: 
>> http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/text/src/main/native/text/unix/makefile?view=diff&rev=504950&r1=504949&r2=504950

>>
>> ============================================================================== 
>>
>> --- 
>> harmony/enhanced/classlib/trunk/modules/text/src/main/native/text/unix/makefile 
>> (original)
>> +++ 
>> harmony/enhanced/classlib/trunk/modules/text/src/main/native/text/unix/makefile 
>> Thu Feb  8 08:48:40 2007
>> @@ -20,7 +20,7 @@
>>  include $(HY_HDK)/build/make/defines.mk
>>
>>  CFLAGS += -fpic
>> -INCLUDES += -I../../icu4c
>> +INCLUDES += -I$(HY_HDK)/include/icu4c
>>
>>  BUILDFILES = $(SHAREDSUB)text_copyright.o $(SHAREDSUB)BidiWrapper.o
>>
>>
>> Modified: 
>> harmony/enhanced/classlib/trunk/modules/text/src/main/native/text/windows/makefile

>>
>> URL: 
>> http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/text/src/main/native/text/windows/makefile?view=diff&rev=504950&r1=504949&r2=504950

>>
>> ============================================================================== 
>>
>> --- 
>> harmony/enhanced/classlib/trunk/modules/text/src/main/native/text/windows/makefile

>> (original)
>> +++ 
>> harmony/enhanced/classlib/trunk/modules/text/src/main/native/text/windows/makefile

>> Thu Feb  8 08:48:40 2007
>> @@ -23,14 +23,14 @@
>>  DLLNAME=..\$(LIBBASE).dll
>>  LIBNAME=$(LIBPATH)$(LIBBASE).lib
>>  HYLDFLAGS = $(HYLDFLAGS) -def:$(LIBBASE).def
>> -HYCFLAGS = $(HYCFLAGS) /I$(SHAREDSUB) /I../../icu4c
>> +HYCFLAGS = $(HYCFLAGS) /I$(SHAREDSUB) /I$(HY_HDK)\include\icu4c
>>  BUILDFILES = $(SHAREDSUB)text_copyright.obj $(SHAREDSUB)BidiWrapper.obj
>>  VIRTFILES = hytext.res
>>  SYSLIBFILES = ws2_32.lib Iphlpapi.lib
>>
>>  MDLLIBFILES = \
>>    $(LIBPATH)hysig.lib $(LIBPATH)hycommon.lib $(LIBPATH)hypool.lib 
>> $(LIBPATH)hyfdlibm.lib \
>> -  $(LIBPATH)hythr.lib $(LIBPATH)vmi.lib ..\..\icu4c\unicode\icuuc.lib
>> +  $(LIBPATH)hythr.lib $(LIBPATH)vmi.lib $(LIBPATH)icuuc.lib
>>
>>  DLLBASE=0x13300000
>>  COMMENT=/comment:"Text component native code. (c) Copyright 1991, 
>> 2005 The Apache Software Foundation or its licensors, as applicable."
>>
>> Modified: 
>> harmony/enhanced/drlvm/trunk/build/make/components/vm/vmcore.xml
>> URL: 
>> http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/build/make/components/vm/vmcore.xml?view=diff&rev=504950&r1=504949&r2=504950

>>
>> ============================================================================== 
>>
>> --- harmony/enhanced/drlvm/trunk/build/make/components/vm/vmcore.xml 
>> (original)
>> +++ harmony/enhanced/drlvm/trunk/build/make/components/vm/vmcore.xml 
>> Thu Feb  8 08:48:40 2007
>> @@ -57,6 +57,7 @@
>>          <compiler id="c.compiler" extends="common.c.compiler">
>>              <includepath>
>>                  <pathelement location="${build.vm.home}/include" />
>> +        <pathelement 
>> location="${external.dep.CLASSLIB.includes}/icu4c" />       
>>                  <pathelement location="${extra.apr.includes}/apr-1" />
>>                  <pathelement location="${extra.apr.includes}" />
>>                  <pathelement location="${extra.log4cxx.includes}" />
>> @@ -177,6 +178,7 @@
>>                  <pathelement location="${extra.apr.includes}" />
>>                  <pathelement location="${extra.apr.includes}/apr-1" />
>>                  <pathelement location="${extra.log4cxx.includes}" />
>> +        <pathelement 
>> location="${external.dep.CLASSLIB.includes}/icu4c" />       
>>                  <select os="win">
>>                      <pathelement location="${extra.zlib.includes}" />
>>                  </select>
>> @@ -188,7 +190,8 @@
>>                      <include name="vmcore/include" />
>>                      <include name="port/include" />
>>                  </dirset>
>> -
>> +       
>> +        <pathelement path="${external.dep.CLASSLIB.includes}/icu4c" />
>>                  <pathelement path="${extra.log4cxx.includes}" />
>>
>>                  <select os="win">
>> @@ -262,6 +265,21 @@
>>              </fileset>
>>          </select>
>>
>> +    <select os="lnx" >
>> +        <select arch="ia32">
>> +            <symlink overwrite="yes" 
>> link="${external.dep.CLASSLIB}/depends/libs/linux.x86/libicuuc.so"
>> +                
>> resource="${external.dep.CLASSLIB}/depends/libs/linux.x86/libicuuc.so.34"/> 
>>
>> +            <symlink overwrite="yes" 
>> link="${external.dep.CLASSLIB}/depends/libs/linux.x86/libicudata.so"
>> +                
>> resource="${external.dep.CLASSLIB}/depends/libs/linux.x86/libicudata.so.34"/>

>>
>> +        </select>
>> +        <select arch="em64t">
>> +            <symlink overwrite="yes" 
>> link="${external.dep.CLASSLIB}/depends/libs/linux.x86_64/libicuuc.so"
>> +                
>> resource="${external.dep.CLASSLIB}/depends/libs/linux.x86_64/libicuuc.so.34"/>

>>
>> +            <symlink overwrite="yes" 
>> link="${external.dep.CLASSLIB}/depends/libs/linux.x86_64/libicudata.so"
>> +                
>> resource="${external.dep.CLASSLIB}/depends/libs/linux.x86_64/libicudata.so.34"/>

>>
>> +        </select>       
>> +    </select>
>> +
>>          <linker id="linker" extends="common.linker">
>>              <libset libs="${vm.port.lib}"
>>                      dir="${vm.port.libdir}" />
>> @@ -292,6 +310,9 @@
>>              <select os="win">
>>                  <libset libs="${extra.zlib.lib}"
>>                          dir="${extra.zlib.libdir}" />
>> +
>> +                   <libset libs="icuuc"
>> +                        dir="${external.dep.CLASSLIB.libdir}" 
>> />           
>>              </select>
>>
>>              <select os="win" cfg="debug">
>> @@ -301,6 +322,14 @@
>>              <select os="lnx">
>>                  <syslibset type="shared" 
>> libs="m,dl,stdc++,z,xml2,pthread,gcc_s,rt" />
>>                  <linkerarg value="--export-dynamic" />
>> +        <select arch="ia32">
>> +            <libset type="shared" libs="icuuc"
>> +                            
>> dir="${external.dep.CLASSLIB}/depends/libs/linux.x86" />
>> +        </select>
>> +        <select arch="em64t">
>> +            <libset type="shared" libs="icuuc"
>> +                            
>> dir="${external.dep.CLASSLIB}/depends/libs/linux.x86_64" />
>> +        </select>       
>>                  <!--linkerarg value="-lz" />
>>                  <linkerarg value="-lxml2" />
>>                  <linkerarg value="-lm" />
>>
>> Modified: harmony/enhanced/drlvm/trunk/build/make/targets/cunit.test.xml
>> URL: 
>> http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/build/make/targets/cunit.test.xml?view=diff&rev=504950&r1=504949&r2=504950

>>
>> ============================================================================== 
>>
>> --- harmony/enhanced/drlvm/trunk/build/make/targets/cunit.test.xml 
>> (original)
>> +++ harmony/enhanced/drlvm/trunk/build/make/targets/cunit.test.xml Thu 
>> Feb  8 08:48:40 2007
>> @@ -138,12 +138,25 @@
>>                          <libset libs="hyzlib" 
>> dir="${external.dep.CLASSLIB}/deploy/jdk/jre/bin" />
>>                          <libset libs="jthread" 
>> dir="${build.semi.dir}/vm/jthread/_bin" />
>>                          <libset libs="harmonyvm" 
>> dir="${build.semi.dir}/vm/vmcore/_bin" />
>> +                        <libset libs="icuuc" 
>> dir="${external.dep.CLASSLIB.libdir}" />
>>                          <select os="win">
>>                              <syslibset libs="advapi32, ws2_32, 
>> mswsock, user32, userenv, odbc32" />
>>                              <linkerarg 
>> value="/NODEFAULTLIB:libcmt.lib" />
>>                          </select>
>>                          <select os="lnx">
>>                              <syslibset type="shared" libs="stdc++, 
>> gcc_s, pthread, rt" />
>> +                            <select arch="ia32">
>> +                    <libset type="shared" libs="icuuc"
>> +                                    
>> dir="${external.dep.CLASSLIB}/depends/libs/linux.x86" />
>> +                    <libset type="shared" libs="icudata"
>> +                                    
>> dir="${external.dep.CLASSLIB}/depends/libs/linux.x86" />
>> +                                </select>               
>> +                            <select arch="em64t">
>> +                                <libset type="shared" libs="icuuc"
>> +                                    
>> dir="${external.dep.CLASSLIB}/depends/libs/linux.x86_64" />
>> +                    <libset type="shared" libs="icudata"
>> +                                    
>> dir="${external.dep.CLASSLIB}/depends/libs/linux.x86_64" />
>> +                            </select>           
>>                          </select>
>>                      </linker>
>>                  </cc>
>>
>> Modified: 
>> harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Class_File_Loader.cpp 
>>
>> URL: 
>> http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Class_File_Loader.cpp?view=diff&rev=504950&r1=504949&r2=504950

>>
>> ============================================================================== 
>>
>> --- 
>> harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Class_File_Loader.cpp 
>> (original)
>> +++ 
>> harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Class_File_Loader.cpp 
>> Thu Feb  8 08:48:40 2007
>> @@ -37,6 +37,8 @@
>>  #include "interpreter_exports.h"
>>  #include "jarfile_util.h"
>>
>> +#include "unicode/uchar.h"
>> +
>>  #ifdef _IPF_
>>  #include "vm_ipf.h"
>>  #endif //_IPF_
>> @@ -617,13 +619,25 @@
>>  static inline bool
>>  check_field_name(const char *name, unsigned len, bool old_version)
>>  {
>> -    for (unsigned i = 0; i < len; i++) {
>> -        switch(name[i]){
>> -        case '.':
>> -        case ';':
>> -        case '[':
>> -        case '/':
>> -            return false;
>> +    TRACE2("field", "field: " << name << " " << len)
>> +    if(old_version) {
>> +        TRACE2("field", "symbol: " << *name);
>> +        if(!(u_isalpha(*name) || *name == '$' || *name == '_'))
>> +            return false;
>> +        for (unsigned i = 1; i < len; i++) {
>> +            TRACE2("field", "symbol: " << name[i]);
>> +            if(!(u_isalnum(name[i]) || name[i] == '$' || name[i] == 
>> '_'))
>> +                return false;
>> +        }
>> +    }else {
>> +        for (unsigned i = 0; i < len; i++) {
>> +            switch(name[i]){
>> +            case '.':
>> +            case ';':
>> +            case '[':
>> +            case '/':
>> +                return false;
>> +            }
>>          }
>>      }
>>      return true;
>> @@ -632,15 +646,25 @@
>>  static inline bool
>>  check_method_name(const char *name, unsigned len, bool old_version)
>>  {
>> -    for (unsigned i = 0; i < len; i++) {
>> -        switch(name[i]){
>> -        case '.':
>> -        case ';':
>> -        case '[':
>> -        case '/':
>> -        case '<':
>> -        case '>':
>> +    if(old_version) {
>> +        if(!(u_isalpha(*name) || *name == '$' || *name == '_'))
>>              return false;
>> +        for (unsigned i = 1; i < len; i++) {
>> +            TRACE2("field", "symbol: " << name[i]);
>> +            if(!(u_isalnum(name[i]) || name[i] == '$' || name[i] == 
>> '_'))
>> +                return false;
>> +        }
>> +    }else {
>> +        for (unsigned i = 0; i < len; i++) {
>> +            switch(name[i]){
>> +            case '.':
>> +            case ';':
>> +            case '[':
>> +            case '/':
>> +            case '<':
>> +            case '>':
>> +                return false;
>> +            }
>>          }
>>      }
>>      return true;
>> @@ -722,7 +746,6 @@
>>  {
>>      if(!Class_Member::parse(clss, cfs))
>>          return false;
>> -
>>      if(env.verify_all
>>              && !check_field_name(_name->bytes, _name->len,
>>                     clss->get_version() < JAVA5_CLASS_FILE_VERSION))
>> @@ -2558,15 +2581,12 @@
>>              if(tag == CONSTANT_Methodref)
>>              {
>>                  //check method name
>> -                if(name != env->Init_String)
>> +                if(env->verify_all && (name != env->Init_String)
>> +                    && !check_method_name(name->bytes,name->len, 
>> clss->get_version() < JAVA5_CLASS_FILE_VERSION))
>>                  {
>> -                    if(!check_method_name(name->bytes,name->len,
>> -                            clss->get_version() < 
>> JAVA5_CLASS_FILE_VERSION))
>> -                    {
>>                          
>> REPORT_FAILED_CLASS_CLASS(clss->get_class_loader(), clss, 
>> "java/lang/ClassFormatError",
>>                              clss->get_name()->bytes << ": illegal 
>> method name for CONSTANT_Methodref entry: " << name->bytes);
>>                          return false;
>> -                    }
>>                  }
>>                  //check method descriptor
>>                  if(!check_method_descriptor(descriptor->bytes))
>> @@ -2592,7 +2612,7 @@
>>              if(tag == CONSTANT_Fieldref)
>>              {
>>                  //check field name
>> -                if(!check_field_name(name->bytes, name->len,
>> +                if(env->verify_all && !check_field_name(name->bytes,

>> name->len,
>>                          clss->get_version() < JAVA5_CLASS_FILE_VERSION))
>>                  {
>>                      
>> REPORT_FAILED_CLASS_CLASS(clss->get_class_loader(), clss, 
>> "java/lang/ClassFormatError",
>> @@ -2783,7 +2803,6 @@
>>              "could not parse major version");
>>          return false;
>>      }
>> -
>>      //See comment in specification 4.2 about supported versions.
>>      if (!(m_version >= CLASSFILE_MAJOR
>>          && m_version <= CLASSFILE_MAJOR_MAX))
>>
>>
> 
> 


-- 
Gregory


Mime
View raw message