Latest repo fails to build on OS X
Michael Franz
mvfranz at gmail.com
Sat Nov 29 19:36:31 PST 2008
I think my problems are from the merging of i486 and amd64 described here:
http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2008-August/000302.html
I ran this little program on 32 bit linux and OS X. They both have the same
results. How does the above changes not cause the same problem on 32 bit
linux?
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
main()
{
printf("char : %d\n", sizeof(char));
printf("int : %d\n", sizeof(int));
printf("int32_t : %d\n", sizeof(int32_t));
printf("intptr_t : %d\n", sizeof(intptr_t));
printf("long : %d\n", sizeof(long));
}
char : 1
int : 4
int32_t : 4
intptr_t : 4
long : 4
On Sat, Nov 29, 2008 at 5:51 PM, Michael Franz <mvfranz at gmail.com> wrote:
> After digging into this I have found that this line:
> movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize),
> (int32_t)NULL_WORD);
> from hotspot/src/cpu/x86/vm/interp_masm_x86_32.hpp is causing the problem.
> It seems that this version of movptr is for 64 bit architectures. Based on
> the comment in hotspot/src/cpu/x86/vm/assembler_x86.hpp
>
> #ifdef _LP64
> // Generally the next two are only used for moving NULL
> // Although there are situations in initializing the mark word where
> // they could be used. They are dangerous.
>
> // They only exist on LP64 so that int32_t and intptr_t are not the same
> // and we have ambiguous declarations.
>
> void movptr(Address dst, int32_t imm32);
> void movptr(Register dst, int32_t imm32);
> #endif // _LP64
>
> Previous version of void empty_expression_stack() used movl instead of
> movptr.
>
> I guess _LP64 needs to be defined for Apple/OS X or the guard needs to
> include __APPLE__ .
>
> Michael
>
>
>
> On Thu, Nov 27, 2008 at 9:01 PM, Michael Franz <mvfranz at gmail.com> wrote:
>
>> Hi,
>>
>> I updated from the repo to day to test out all the merged code. I get the
>> following errors when trying to build:
>> /Users/mfranz/developer/openjdk-bsd/repos/2008-11-27/hotspot/src/cpu/x86/vm/interp_masm_x86_32.hpp:
>> In member function 'void
>> InterpreterMacroAssembler::empty_expression_stack()':
>> /Users/mfranz/developer/openjdk-bsd/repos/2008-11-27/hotspot/src/cpu/x86/vm/interp_masm_x86_32.hpp:123:
>> error: call of overloaded 'movptr(Address, int)' is ambiguous
>> /Users/mfranz/developer/openjdk-bsd/repos/2008-11-27/hotspot/src/cpu/x86/vm/assembler_x86.hpp:2010:
>> note: candidates are: void MacroAssembler::movptr(Address, intptr_t)
>> /Users/mfranz/developer/openjdk-bsd/repos/2008-11-27/hotspot/src/cpu/x86/vm/assembler_x86.hpp:2012:
>> note: void MacroAssembler::movptr(Address, RegisterImpl*)
>> make[6]: *** [incls/_precompiled.incl.gch] Error 1
>> make[5]: *** [the_vm] Error 2
>> make[4]: *** [product] Error 2
>> make[3]: *** [generic_build2] Error 2
>> make[2]: *** [product] Error 2
>> make[1]: *** [hotspot-build] Error 2
>> make: *** [build_product_image] Error 2
>>
>>
>> I have not investigated yet, were any of the merged code dealing with
>> this?
>>
>> I was able to build the November 24 updates.
>>
>> Michael
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/bsd-port-dev/attachments/20081129/c064fdf8/attachment.html
More information about the bsd-port-dev
mailing list