[LLVMdev] Re: Compiling FreeType 2.1.9 with LLVM 1.4

Jeff Cohen jeffc at jolt-lang.org
Sun Dec 19 23:58:24 PST 2004


Adam sent me his tar file and only one file in it needs to be attached 
to a bug report, and it's only about 260KB.  The initialization that 
causes the errors is below.  I'm sure I can prune it down significantly.

    static const FT_Frame_Field header_fields[] =
    {



      { ft_frame_start, 0, 54 },
        { ft_frame_ulong_be, (FT_Byte)sizeof ( 
((TT_Header*)0)->Table_Version ), (FT_UShort)( ((size_t) &((TT_Header 
*)0)->Table_Version) ) },
        { ft_frame_ulong_be, (FT_Byte)sizeof ( 
((TT_Header*)0)->Font_Revision ), (FT_UShort)( ((size_t) &((TT_Header 
*)0)->Font_Revision) ) },
        { ft_frame_long_be, (FT_Byte)sizeof ( 
((TT_Header*)0)->CheckSum_Adjust ), (FT_UShort)( ((size_t) &((TT_Header 
*)0)->CheckSum_Adjust) ) },
        { ft_frame_long_be, (FT_Byte)sizeof ( 
((TT_Header*)0)->Magic_Number ), (FT_UShort)( ((size_t) &((TT_Header 
*)0)->Magic_Number) ) },
        { ft_frame_ushort_be, (FT_Byte)sizeof ( ((TT_Header*)0)->Flags 
), (FT_UShort)( ((size_t) &((TT_Header *)0)->Flags) ) },
        { ft_frame_ushort_be, (FT_Byte)sizeof ( 
((TT_Header*)0)->Units_Per_EM ), (FT_UShort)( ((size_t) &((TT_Header 
*)0)->Units_Per_EM) ) },
=================== Errors start with the next line ===============
        { ft_frame_long_be, (FT_Byte)sizeof ( 
((TT_Header*)0)->Created[0] ), (FT_UShort)( ((size_t) &((TT_Header 
*)0)->Created[0]) ) },
        { ft_frame_long_be, (FT_Byte)sizeof ( 
((TT_Header*)0)->Created[1] ), (FT_UShort)( ((size_t) &((TT_Header 
*)0)->Created[1]) ) },
        { ft_frame_long_be, (FT_Byte)sizeof ( 
((TT_Header*)0)->Modified[0] ), (FT_UShort)( ((size_t) &((TT_Header 
*)0)->Modified[0]) ) },
        { ft_frame_long_be, (FT_Byte)sizeof ( 
((TT_Header*)0)->Modified[1] ), (FT_UShort)( ((size_t) &((TT_Header 
*)0)->Modified[1]) ) },
        { ft_frame_short_be, (FT_Byte)sizeof ( ((TT_Header*)0)->xMin ), 
(FT_UShort)( ((size_t) &((TT_Header *)0)->xMin) ) },
        { ft_frame_short_be, (FT_Byte)sizeof ( ((TT_Header*)0)->yMin ), 
(FT_UShort)( ((size_t) &((TT_Header *)0)->yMin) ) },
        { ft_frame_short_be, (FT_Byte)sizeof ( ((TT_Header*)0)->xMax ), 
(FT_UShort)( ((size_t) &((TT_Header *)0)->xMax) ) },
        { ft_frame_short_be, (FT_Byte)sizeof ( ((TT_Header*)0)->yMax ), 
(FT_UShort)( ((size_t) &((TT_Header *)0)->yMax) ) },
        { ft_frame_ushort_be, (FT_Byte)sizeof ( 
((TT_Header*)0)->Mac_Style ), (FT_UShort)( ((size_t) &((TT_Header 
*)0)->Mac_Style) ) },
        { ft_frame_ushort_be, (FT_Byte)sizeof ( 
((TT_Header*)0)->Lowest_Rec_PPEM ), (FT_UShort)( ((size_t) &((TT_Header 
*)0)->Lowest_Rec_PPEM) ) },
        { ft_frame_short_be, (FT_Byte)sizeof ( 
((TT_Header*)0)->Font_Direction ), (FT_UShort)( ((size_t) &((TT_Header 
*)0)->Font_Direction) ) },
        { ft_frame_short_be, (FT_Byte)sizeof ( 
((TT_Header*)0)->Index_To_Loc_Format ), (FT_UShort)( ((size_t) 
&((TT_Header *)0)->Index_To_Loc_Format) ) },
        { ft_frame_short_be, (FT_Byte)sizeof ( 
((TT_Header*)0)->Glyph_Data_Format ), (FT_UShort)( ((size_t) 
&((TT_Header *)0)->Glyph_Data_Format) ) },
      { ft_frame_end, 0, 0 }
    };



Reid Spencer wrote:

>On Sun, 2004-12-19 at 22:52, Adam Warner wrote:
>  
>
>>Hi Reid Spencer,
>>
>>    
>>
>>>CC=/path/to/llvmgcc CXX=/path/to/llvmg++ configure
>>>make
>>>
>>>and was able to reproduce the problem. Not sure what's up with that but
>>>as Misha pointed out, llvmgcc isn't any "particular" version of 3.4, its
>>>just 3.4ish. I also concur with him that you should file a bug and
>>>attach the pre-processed source to it. You can get that with the -E flag
>>>to GCC.
>>>      
>>>
>>Many thanks for everyone's wonderful replies.
>>
>>I added the -E flag to the build options. Are the preprocessed sources the
>>.o files that now look something like this:
>>
>># 1 "/home/adam/t/t5/freetype-2.1.9/src/sfnt/sfnt.c"
>># 1 "/home/adam/t/t5/freetype-2.1.9//"
>># 1 "/home/adam/t/t5/freetype-2.1.9/src/sfnt/sfnt.c"
>># 1 "<built-in>"
>># 1 "<command line>"
>>...
>>typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
>>typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));
>>typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__)));
>>typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
>>    
>>
>
>Yup, that would be the preprocessed sources!
>
>  
>
>>...
>>
>>...because there's 4.8MB of them and I'd first like to confirm this is
>>what I should be attaching. I'm sorry but at this stage I don't have the
>>capabilities to narrow down the FreeType source code to a minimum test
>>case (unless the FreeType source code happens to looks uncannily like the
>>C version of Hello, World!)
>>    
>>
>
>Can you just capture the pre-processed source for the one FreeType file
>that produces the errors about the non-constant initialization? Just see
>what the makefile spits out for a compilation command for that one file
>and change "-c" to "-E". Hopefully that's not multi-megabyte. If it is,
>please compress it with gzip before attaching it to the bug.
>
>Thanks,
>
>Reid.
>
>  
>
>------------------------------------------------------------------------
>
>_______________________________________________
>LLVM Developers mailing list
>LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev
>  
>




More information about the llvm-dev mailing list