[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