[Ecls-list] ECL trunk fails to build on an x86_64 system

Gabriel Dos Reis gdr at integrable-solutions.net
Fri Jan 16 16:27:48 UTC 2009


On Fri, Jan 16, 2009 at 3:05 AM, Juan Jose Garcia-Ripoll
<juanjose.garciaripoll at googlemail.com> wrote:
> On Fri, Jan 16, 2009 at 5:07 AM, Gabriel Dos Reis
> <gdr at integrable-solutions.net> wrote:
>
>> Indeed the macro IO_FILE_DESCRIPTOR (defined in h/internal.h)
>>
>>  #define IO_FILE_DESCRIPTOR(strm) (int) ((strm)->stream.file)
>>
>> is doing that.  I don't see any immediate reason for that cast
>> to be OK on x86_64 systems given the fact that the field  'file' is
>> declared of type void*.  Am I looking at the wrong definition?
>
> I would say so. That cast is done because this field holds at most an
> integer (it is the output of open()).

So, how it is that GCC is complaining about casting a *pointer*
to an integer of the wrong size?  Which file contains the right
definition I should be looking into?


By the way, CVS ECL fails to build on *all* my x86_64 machines.
However, the 8.12.0 builds just fine.


Best,

-- Gaby




More information about the ecl-devel mailing list