New bug in build process

Ted Neward ted at tedneward.com
Tue Jul 31 22:38:08 UTC 2007


Weird. *shrug* Oh, well. If b17 is coming by the end of the week, I guess I
can wait. :-)

Ted Neward
Java, .NET, XML Services
Consulting, Teaching, Speaking, Writing
http://www.tedneward.com
 

> -----Original Message-----
> From: Phil.Race at Sun.COM [mailto:Phil.Race at Sun.COM]
> Sent: Tuesday, July 31, 2007 3:20 PM
> To: Ted Neward
> Cc: Kelly.Ohair at Sun.COM; build-dev at openjdk.java.net
> Subject: Re: New bug in build process
> 
> Ted,
> 
>   the code for those methods is (in b16) in
> src/share/native/sun/font/scalerMethods.c so you can see for yourself
> there's nothing special about them except that the rest are JNI methods
> and they aren't : they are called directly from fontmanager.dll so
> if they weren't exported properly we'd know about it ..
> 
> Anyway this will all be moot in a few days when b17 is out.
> 
> -phil.
> 
> Ted Neward wrote:
> > I think the problem may be more subtle than this; I did a little
> > investigation, and missing functions are present in T2K.DLL, but not
> with
> > the leading underscores. I took a look at the exports from T2K.DLL, and
> > they're as follows:
> >
> > C:\Prg\OpenJDK\BinaryPlugs>dumpbin /exports jdk1.7.0\jre\bin\t2k.dll
> > Microsoft (R) COFF/PE Dumper Version 7.10.3077
> > Copyright (C) Microsoft Corporation.  All rights reserved.
> >
> >
> > Dump of file jdk1.7.0\jre\bin\t2k.dll
> >
> > File Type: DLL
> >
> >   Section contains the following exports for t2k.dll
> >
> >     00000000 characteristics
> >     468CC934 time date stamp Thu Jul 05 03:34:28 2007
> >         0.00 version
> >            1 ordinal base
> >           22 number of functions
> >           22 number of names
> >
> >     ordinal hint RVA      name
> >
> >           1    0 0002306C
> > _Java_sun_font_FileFontStrike_createScalerContext at 44
> >           2    1 0002302E
> > _Java_sun_font_FileFontStrike_getNullScalerContext at 16
> >           3    2 00023F9F _Java_sun_font_FileFont_freeScaler at 16
> >           4    3 00024762 _Java_sun_font_FileFont_getFontMetrics at 16
> >           5    4 00024027 _Java_sun_font_FileFont_getGlyphAdvance at 20
> >           6    5 0002428C _Java_sun_font_FileFont_getGlyphImage at 20
> >           7    6 00024108 _Java_sun_font_FileFont_getGlyphMetrics at 24
> >           8    7 00025275 _Java_sun_font_FileFont_getGlyphOutline at 28
> >           9    8 000252CC
> _Java_sun_font_FileFont_getGlyphOutlineBounds at 20
> >          10    9 00025321
> _Java_sun_font_FileFont_getGlyphVectorOutline at 32
> >          11    A 00022EE1 _Java_sun_font_FileFont_getNullScaler at 8
> >          12    B 00023D91 _Java_sun_font_FileFont_setNullScaler at 16
> >          13    C 000233A7 _Java_sun_font_TrueTypeFont_createScaler at 24
> >          14    D 0002463E _Java_sun_font_TrueTypeFont_getGlyphPoint at 24
> >          15    E 00022EEB _Java_sun_font_Type1Font_createScaler at 12
> >          16    F 00023F13 _Java_sun_font_Type1Font_getGlyphCode at 20
> >          17   10 00023EF8
> _Java_sun_font_Type1Font_getMissingGlyphCode at 16
> >          18   11 00023EDB _Java_sun_font_Type1Font_getNumGlyphs at 16
> >          19   12 00023E20 getLayoutTables
> >          20   13 00023DBD getUnitsPerEmForLayout
> >          21   14 00023055 isNullScalerContext
> >          22   15 00022C03 setSunFontIDs
> >
> >   Summary
> >
> >         1000 .data
> >         7000 .rdata
> >         2000 .reloc
> >         1000 .rsrc
> >        25000 .text
> >
> > As you can see, those missing four functions *are* there, in T2K.dll,
> but
> > don't have the leading underscore, which somehow the compiler thinks is
> > there. My guess is that there's a calling convention mixup here somehow,
> or
> > else the T2K.lib is somehow written to insert the leading underscores
> there.
> > (Which then implies it's not just a straightforward import library, I
> > think.) Is it possible that there's a macro somewhere in the native code
> > that's inserting an underscore when it shouldn't?
> >
> > Ted Neward
> > Java, .NET, XML Services
> > Consulting, Teaching, Speaking, Writing
> > http://www.tedneward.com
> >
> >
> >> -----Original Message-----
> >> From: Kelly.Ohair at Sun.COM [mailto:Kelly.Ohair at Sun.COM]
> >> Sent: Monday, July 30, 2007 7:02 AM
> >> To: Ted Neward
> >> Cc: build-dev at openjdk.java.net
> >> Subject: Re: New bug in build process
> >>
> >> Is this t2k.lib file the one you created from t2k.dll?
> >>
> >> I've never seen these errors before, but it looks like it's in the
> >> fastdebug build, which would mean you got past the product build,
> >> which is significant.
> >>
> >> This is just a wild guess, but I wonder if the debug t2k.dll file has
> more
> >> external symbols than the product one? I'm not that familiar with
> >> the external list for this library.
> >>
> >> ---
> >>
> >> Keep in mind that although we regularly build the fastdebug bits (-g -
> O),
> >> and
> >> some developers build the debug bits (-g), neither are tested very
> >> extensively.
> >> With the exception of the Hotspot VM, which gets tested fairly well
> with
> >> VM type tests.
> >> It's the product built bits that get most of the formal JDK testing
> done
> >> to them.
> >>
> >> Product .obj/.o files should end up in a obj directory (under
> >> build/*/tmp),
> >> fastdebug ones in obj_gO, and debug ones in obj_g. I'm curious why you
> are
> >> seeing
> >> some obj_gO references and some obj_g references. Maybe there is
> another
> >> bug in
> >> the BinaryPlugs.gmk file... :^(
> >>
> >> -kto
> >>
> >> Ted Neward wrote:
> >>> After doing a “nuke” of the build dir, and doing a fresh “make
> >>> debug_build DEV=1” (again, on Windows), I get this:
> >>>
> >>>
> >>>
> >>>    Creating library
> >>> c:/Prg/OpenJDK/openjdk/control/build/WINDOW~2/tmp/sun/sun.fo
> >>>
> >>> nt/fontmanager/obj_gO/fontmanager.lib and object
> >>> c:/Prg/OpenJDK/openjdk/control/
> >>>
> >>> build/WINDOW~2/tmp/sun/sun.font/fontmanager/obj_gO/fontmanager.exp
> >>>
> >>> sunFont.obj : error LNK2019: unresolved external symbol _setSunFontIDs
> >>> reference
> >>>
> >>> d in function _Java_sun_font_FontManager_initIDs at 8
> >>>
> >>> sunFont.obj : error LNK2019: unresolved external symbol
> >>> _isNullScalerContext ref
> >>>
> >>> erenced in function _Java_sun_font_StrikeCache_freeIntMemory at 20
> >>>
> >>> SunLayoutEngine.obj : error LNK2019: unresolved external symbol
> >>> _getUnitsPerEmFo
> >>>
> >>> rLayout referenced in function "public: virtual long __thiscall
> >>> FontInstanceAdap
> >>>
> >>> ter::getUnitsPerEM(void)const "
> >> (?getUnitsPerEM at FontInstanceAdapter@@UBEJXZ)
> >>> FontInstanceAdapter.obj : error LNK2001: unresolved external symbol
> >>> _getUnitsPer
> >>>
> >>> EmForLayout
> >>>
> >>> FontInstanceAdapter.obj : error LNK2019: unresolved external symbol
> >>> _getLayoutTa
> >>>
> >>> bles referenced in function "public: __thiscall
> >>> FontInstanceAdapter::FontInstanc
> >>>
> >>> eAdapter(struct JNIEnv_ *,class _jobject *,class _jobject *,float
> >>> *,long,long)"
> >>>
> >>> (??0FontInstanceAdapter@@QAE at PAUJNIEnv_@@PAV_jobject@@1PAMJJ at Z)
> >>>
> >>>
> >>
> c:/Prg/OpenJDK/openjdk/control/build/WINDOW~2/tmp/sun/sun.font/fontmanager
> >> /obj_g
> >>> O/fontmanager.dll : fatal error LNK1120: 4 unresolved externals
> >>>
> >>> make[5]: ***
> >>> [c:/Prg/OpenJDK/openjdk/control/build/WINDOW~2/bin/fontmanager.dll]
> >>>
> >>>  Error 96
> >>>
> >>> make[5]: Leaving directory
> >>> `/cygdrive/c/Prg/OpenJDK/openjdk/j2se/make/sun/font'
> >>>
> >>> make[4]: *** [all] Error 1
> >>>
> >>> make[4]: Leaving directory
> >> `/cygdrive/c/Prg/OpenJDK/openjdk/j2se/make/sun'
> >>> make[3]: *** [all] Error 1
> >>>
> >>> make[3]: Leaving directory `/cygdrive/c/Prg/OpenJDK/openjdk/j2se/make'
> >>>
> >>> make[2]: *** [j2se-build] Error 2
> >>>
> >>> make[2]: Leaving directory
> >> `/cygdrive/c/Prg/OpenJDK/openjdk/control/make'
> >>> make[1]: *** [generic_debug_build] Error 2
> >>>
> >>> make[1]: Leaving directory
> >> `/cygdrive/c/Prg/OpenJDK/openjdk/control/make'
> >>> make: *** [fastdebug_build] Error 2
> >>>
> >>> CYGWIN:Ted at XPJAVA:/cygdrive/c/Prg/OpenJDK/openjdk/control/make
> >>>
> >>> $
> >>>
> >>>
> >>>
> >>> Apparently there’s some missing object files in the link step of
> >>> fontmanager.lib; any ideas? Intuition tells me this is t2k.lib-related
> >>> again, since we’re back in the silly font directory again, and yes, I
> >>> know, t2k is going away soon, but I’d like to see if it can be worked
> >>> around in the meantime. Legal issues have this annoying tendency to
> take
> >>> MUCH longer than engineers think they should… :-)
> >>>
> >>>
> >>>
> >>> The build output prior to this link line is pretty verbose, but I can
> >>> send it if it’ll help debug the problem….
> >>>
> >>>
> >>>
> >>> Ted Neward
> >>>
> >>> Java, .NET, XML Services
> >>>
> >>> Consulting, Teaching, Speaking, Writing
> >>>
> >>> http://www.tedneward.com
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>> No virus found in this outgoing message.
> >>> Checked by AVG Free Edition.
> >>> Version: 7.5.476 / Virus Database: 269.10.23/924 - Release Date:
> >>> 7/28/2007 3:50 PM
> >>>
> >> No virus found in this incoming message.
> >> Checked by AVG Free Edition.
> >> Version: 7.5.476 / Virus Database: 269.10.23/924 - Release Date:
> 7/28/2007
> >> 3:50 PM
> >>
> >
> > No virus found in this outgoing message.
> > Checked by AVG Free Edition.
> > Version: 7.5.476 / Virus Database: 269.11.0/929 - Release Date:
> 7/31/2007
> > 5:26 PM
> >
> >
> 
> No virus found in this incoming message.
> Checked by AVG Free Edition.
> Version: 7.5.476 / Virus Database: 269.11.0/929 - Release Date: 7/31/2007
> 5:26 PM
> 

No virus found in this outgoing message.
Checked by AVG Free Edition. 
Version: 7.5.476 / Virus Database: 269.11.0/929 - Release Date: 7/31/2007
5:26 PM
 




More information about the build-dev mailing list