Hello, Dan!
I did some more debugging on that problem. This bug was also reported on this list: http://gcc.gnu.org/ml/gcc/2004-07/msg00861.html
To isolate it for the first step it's sufficient to only build mkfontscale within <...>/xc/programs/mkfontscale and then call it with mkfontscale Type1 (as mentioned below)
And then, the fun starts: (let me just recite the old mail)
Compilation of mkfontscale is ok, but its execution is quite strange. In the source code of mkfontscale, a call to a function of freetype-2.1.9 is made : FT_Get_Name_Index() in freetype-2.1.9/src/base/ftobjs.c:3279
In the source code of this freetype function, a call to another function of freetype is made : FT_FACE_LOOKUP_SERVICE()
The full code of the function FT_Get_Name_Index() is :
FT_EXPORT_DEF( FT_UInt ) FT_Get_Name_Index( FT_Face face, FT_String* glyph_name ) { FT_UInt result = 0; if ( face && FT_HAS_GLYPH_NAMES( face ) ) { FT_Service_GlyphDict service; FT_FACE_LOOKUP_SERVICE( face, service, GLYPH_DICT ); if ( service && service->name_index ) result = service->name_index( face, glyph_name ); /*CRASHES HERE*/ } return result; }
I am not finished with anlysing the code... but on my target it crashes on the same place after the 0xff4a988 <FT_Get_Name_Index+176>: blrl instruction. So, it jumps out of executable code to some 0x10034cxxsomething until it hits an illegal instruction (after about 4 steps).
(ppc, mpc8540, gcc-3.4-20040401 or gcc-3.4.3, binutils-2.15.96)
So, the first basic question: Is the above code okay? Is the stack just trashes? I am not much into ppc assembly code. Maybe I need a helping hand. I can also let you ssh onto that machine if it's of any use.
For me, I try to get what you said... <learning...>
Thank you, so far!
Clemens
Dump of assembler code for function FT_Get_Name_Index: 0xff4a8d8 <FT_Get_Name_Index>: stwu r1,-32(r1) 0xff4a8dc <FT_Get_Name_Index+4>: mflr r0 0xff4a8e0 <FT_Get_Name_Index+8>: bcl- 20,4*cr7+so,0xff4a8e4 <FT_Get_Name_Index+12> 0xff4a8e4 <FT_Get_Name_Index+12>: stw r30,24(r1) 0xff4a8e8 <FT_Get_Name_Index+16>: mflr r30 0xff4a8ec <FT_Get_Name_Index+20>: stw r31,28(r1) 0xff4a8f0 <FT_Get_Name_Index+24>: mr. r31,r3 0xff4a8f4 <FT_Get_Name_Index+28>: stw r0,36(r1) 0xff4a8f8 <FT_Get_Name_Index+32>: stw r28,16(r1) 0xff4a8fc <FT_Get_Name_Index+36>: li r28,0 0xff4a900 <FT_Get_Name_Index+40>: lwz r0,-16(r30) 0xff4a904 <FT_Get_Name_Index+44>: stw r29,20(r1) 0xff4a908 <FT_Get_Name_Index+48>: mr r29,r4 0xff4a90c <FT_Get_Name_Index+52>: add r30,r0,r30 0xff4a910 <FT_Get_Name_Index+56>: beq- 0xff4a990 <FT_Get_Name_Index+184> 0xff4a914 <FT_Get_Name_Index+60>: lwz r0,8(r31) 0xff4a918 <FT_Get_Name_Index+64>: andi. r9,r0,512 0xff4a91c <FT_Get_Name_Index+68>: beq- 0xff4a990 <FT_Get_Name_Index+184> 0xff4a920 <FT_Get_Name_Index+72>: lwz r11,128(r31) 0xff4a924 <FT_Get_Name_Index+76>: lwz r3,40(r11) 0xff4a928 <FT_Get_Name_Index+80>: cmpwi cr7,r3,-2 0xff4a92c <FT_Get_Name_Index+84>: beq- cr7,0xff4a9b4 <FT_Get_Name_Index+220> 0xff4a930 <FT_Get_Name_Index+88>: cmpwi cr7,r3,0 0xff4a934 <FT_Get_Name_Index+92>: bne- cr7,0xff4a960 <FT_Get_Name_Index+136> 0xff4a938 <FT_Get_Name_Index+96>: lwz r10,96(r31) 0xff4a93c <FT_Get_Name_Index+100>: lwz r9,0(r10) 0xff4a940 <FT_Get_Name_Index+104>: lwz r0,32(r9) 0xff4a944 <FT_Get_Name_Index+108>: cmpwi cr7,r0,0 0xff4a948 <FT_Get_Name_Index+112>: bne- cr7,0xff4a9bc <FT_Get_Name_Index+228> 0xff4a94c <FT_Get_Name_Index+116>: cmpwi cr7,r3,0 0xff4a950 <FT_Get_Name_Index+120>: mr r0,r3 0xff4a954 <FT_Get_Name_Index+124>: bne- cr7,0xff4a95c <FT_Get_Name_Index+132> 0xff4a958 <FT_Get_Name_Index+128>: li r0,-2 0xff4a95c <FT_Get_Name_Index+132>: stw r0,40(r11) 0xff4a960 <FT_Get_Name_Index+136>: lwz r9,8(r1) 0xff4a964 <FT_Get_Name_Index+140>: stw r3,8(r1) 0xff4a968 <FT_Get_Name_Index+144>: cmpwi cr7,r9,0 0xff4a96c <FT_Get_Name_Index+148>: beq- cr7,0xff4a990 <FT_Get_Name_Index+184> 0xff4a970 <FT_Get_Name_Index+152>: lwz r0,4(r9) 0xff4a974 <FT_Get_Name_Index+156>: cmpwi cr7,r0,0 0xff4a978 <FT_Get_Name_Index+160>: beq+ cr7,0xff4a990 <FT_Get_Name_Index+184> 0xff4a97c <FT_Get_Name_Index+164>: mr r3,r31 0xff4a980 <FT_Get_Name_Index+168>: mr r4,r29 0xff4a984 <FT_Get_Name_Index+172>: mtlr r0 0xff4a988 <FT_Get_Name_Index+176>: blrl 0xff4a98c <FT_Get_Name_Index+180>: mr r28,r3 0xff4a990 <FT_Get_Name_Index+184>: lwz r0,36(r1) 0xff4a994 <FT_Get_Name_Index+188>: mr r3,r28 0xff4a998 <FT_Get_Name_Index+192>: lwz r29,20(r1) 0xff4a99c <FT_Get_Name_Index+196>: lwz r28,16(r1) 0xff4a9a0 <FT_Get_Name_Index+200>: mtlr r0 0xff4a9a4 <FT_Get_Name_Index+204>: lwz r30,24(r1) 0xff4a9a8 <FT_Get_Name_Index+208>: lwz r31,28(r1) 0xff4a9ac <FT_Get_Name_Index+212>: addi r1,r1,32 0xff4a9b0 <FT_Get_Name_Index+216>: blr 0xff4a9b4 <FT_Get_Name_Index+220>: li r3,0 0xff4a9b8 <FT_Get_Name_Index+224>: b 0xff4a960 <FT_Get_Name_Index+136> 0xff4a9bc <FT_Get_Name_Index+228>: mr r3,r10 0xff4a9c0 <FT_Get_Name_Index+232>: lwz r4,-32732(r30) 0xff4a9c4 <FT_Get_Name_Index+236>: mtlr r0 0xff4a9c8 <FT_Get_Name_Index+240>: blrl 0xff4a9cc <FT_Get_Name_Index+244>: lwz r11,128(r31) 0xff4a9d0 <FT_Get_Name_Index+248>: b 0xff4a94c <FT_Get_Name_Index+116> End of assembler dump.
Daniel Kegel wrote:
Clemens Koller wrote:
+ ../../../exports/bin/mkfontscale /usr/X11R6/lib/X11/fonts/Type1 make[4]: *** [install] Error 132
Can you try to produce a standalone test case that doesn't require building all of X? e.g. can you save the preprocessor output from the mkfontscale compiler run, compile that on a different system, and reproduce the problem, preferably with a single known font file? - Dan
-- Clemens Koller _______________________________ R&D Imaging Devices Anagramm GmbH Rupert-Mayer-Str. 45/1 81379 Muenchen Germany
http://www.anagramm.de Phone: +49-89-741518-50 Fax: +49-89-741518-19