Broken Hipe in R14B02

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Broken Hipe in R14B02

Håkan Mattsson-4
I forgot to use --disable-hipe and got the following compilation error.

Time to disable hipe by default?

/Håkan

$ uname -a
Linux tellus 2.6.35-27-generic #48-Ubuntu SMP Tue Feb 22 20:25:46 UTC
2011 x86_64 GNU/Linux
$ ./configure --prefix=/usr/local/pgm/otp_R14B02
--enable-halfword-emulator && make
...
...
...
gcc  -g -O3 -I/usr/local/src/otp_src_R14B02/erts/x86_64-unknown-linux-gnu
  -fno-tree-copyrename  -D_GNU_SOURCE -DERTS_SMP -DHAVE_CONFIG_H -Wall
-Wstrict-prototypes -Wmissing-prototypes -Wdeclarati
on-after-statement -DUSE_THREADS -D_THREAD_SAFE -D_REENTRANT
-DPOSIX_THREADS -D_POSIX_THREAD_SAFE_FUNCTIONS
-Ix86_64-unknown-linux-gnu/opt/smp -Ibeam -Isys/unix -Isys/common
-Ix86_64-unknown-linux
-gnu -Izlib  -Ipcre -Ihipe -I../include
-I../include/x86_64-unknown-linux-gnu -I../include/internal
-I../include/internal/x86_64-unknown-linux-gnu -c hipe/hipe_amd64.c -o
obj/x86_64-unknown-linux-gnu/opt/smp/hipe_amd64.o
hipe/hipe_amd64.c:40: warning: large integer implicitly truncated to
unsigned type
hipe/hipe_amd64.c:42: error: conflicting types for ‘hipe_patch_load_fe’
hipe/hipe_arch.h:28: note: previous declaration of ‘hipe_patch_load_fe’ was here
hipe/hipe_amd64.c:49: error: conflicting types for ‘hipe_patch_insn’
hipe/hipe_arch.h:29: note: previous declaration of ‘hipe_patch_insn’ was here
hipe/hipe_amd64.c: In function ‘hipe_patch_call’:
hipe/hipe_amd64.c:77: warning: cast from pointer to integer of different size
hipe/hipe_amd64.c:77: warning: cast from pointer to integer of different size
hipe/hipe_amd64.c: In function ‘hipe_bifs_write_u64_2’:
hipe/hipe_amd64.c:371: warning: passing argument 2 of ‘term_to_Uint’
from incompatible pointer type
beam/big.h:152: note: expected ‘Uint *’ but argument is of type ‘Uint64 *’
make[3]: *** [obj/x86_64-unknown-linux-gnu/opt/smp/hipe_amd64.o] Error 1
make[3]: Leaving directory `/usr/local/src/otp_src_R14B02/erts/emulator'
make[2]: *** [opt] Error 2
make[2]: Leaving directory `/usr/local/src/otp_src_R14B02/erts/emulator'
:

________________________________________________________________
erlang-bugs (at) erlang.org mailing list.
See http://www.erlang.org/faq.html
To unsubscribe; mailto:[hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Broken Hipe in R14B02

Sverker Eriksson
Hipe and halfword emulator do not play nice together yet.

Any problems without --enable-halfword-emulator?

/Sverker, Erlang/OTP


Håkan Mattsson wrote:

> I forgot to use --disable-hipe and got the following compilation error.
>
> Time to disable hipe by default?
>
> /Håkan
>
> $ uname -a
> Linux tellus 2.6.35-27-generic #48-Ubuntu SMP Tue Feb 22 20:25:46 UTC
> 2011 x86_64 GNU/Linux
> $ ./configure --prefix=/usr/local/pgm/otp_R14B02
> --enable-halfword-emulator && make
> ...
> ...
> ...
> gcc  -g -O3 -I/usr/local/src/otp_src_R14B02/erts/x86_64-unknown-linux-gnu
>   -fno-tree-copyrename  -D_GNU_SOURCE -DERTS_SMP -DHAVE_CONFIG_H -Wall
> -Wstrict-prototypes -Wmissing-prototypes -Wdeclarati
> on-after-statement -DUSE_THREADS -D_THREAD_SAFE -D_REENTRANT
> -DPOSIX_THREADS -D_POSIX_THREAD_SAFE_FUNCTIONS
> -Ix86_64-unknown-linux-gnu/opt/smp -Ibeam -Isys/unix -Isys/common
> -Ix86_64-unknown-linux
> -gnu -Izlib  -Ipcre -Ihipe -I../include
> -I../include/x86_64-unknown-linux-gnu -I../include/internal
> -I../include/internal/x86_64-unknown-linux-gnu -c hipe/hipe_amd64.c -o
> obj/x86_64-unknown-linux-gnu/opt/smp/hipe_amd64.o
> hipe/hipe_amd64.c:40: warning: large integer implicitly truncated to
> unsigned type
> hipe/hipe_amd64.c:42: error: conflicting types for ‘hipe_patch_load_fe’
> hipe/hipe_arch.h:28: note: previous declaration of ‘hipe_patch_load_fe’ was here
> hipe/hipe_amd64.c:49: error: conflicting types for ‘hipe_patch_insn’
> hipe/hipe_arch.h:29: note: previous declaration of ‘hipe_patch_insn’ was here
> hipe/hipe_amd64.c: In function ‘hipe_patch_call’:
> hipe/hipe_amd64.c:77: warning: cast from pointer to integer of different size
> hipe/hipe_amd64.c:77: warning: cast from pointer to integer of different size
> hipe/hipe_amd64.c: In function ‘hipe_bifs_write_u64_2’:
> hipe/hipe_amd64.c:371: warning: passing argument 2 of ‘term_to_Uint’
> from incompatible pointer type
> beam/big.h:152: note: expected ‘Uint *’ but argument is of type ‘Uint64 *’
> make[3]: *** [obj/x86_64-unknown-linux-gnu/opt/smp/hipe_amd64.o] Error 1
> make[3]: Leaving directory `/usr/local/src/otp_src_R14B02/erts/emulator'
> make[2]: *** [opt] Error 2
> make[2]: Leaving directory `/usr/local/src/otp_src_R14B02/erts/emulator'
> :
>
> ________________________________________________________________
> erlang-bugs (at) erlang.org mailing list.
> See http://www.erlang.org/faq.html
> To unsubscribe; mailto:[hidden email]
>
>
>  



________________________________________________________________
erlang-bugs (at) erlang.org mailing list.
See http://www.erlang.org/faq.html
To unsubscribe; mailto:[hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Broken Hipe in R14B02

Mikael Pettersson-3
On Wed, 16 Mar 2011 16:31:06 +0100, Sverker Eriksson wrote:

> Hipe and halfword emulator do not play nice together yet.
>
> Any problems without --enable-halfword-emulator?
>
> /Sverker, Erlang/OTP
>
>
> H=E5kan Mattsson wrote:
> > I forgot to use --disable-hipe and got the following compilation error.=
>
> >
> > Time to disable hipe by default?
> >
> > /H=E5kan
> >
> > $ uname -a
> > Linux tellus 2.6.35-27-generic #48-Ubuntu SMP Tue Feb 22 20:25:46 UTC
> > 2011 x86_64 GNU/Linux
> > $ ./configure --prefix=3D/usr/local/pgm/otp_R14B02
> > --enable-halfword-emulator && make
> > ...
> > ...
> > ...
> > gcc  -g -O3 -I/usr/local/src/otp_src_R14B02/erts/x86_64-unknown-linux-g=
> nu
> >   -fno-tree-copyrename  -D_GNU_SOURCE -DERTS_SMP -DHAVE_CONFIG_H -Wall
> > -Wstrict-prototypes -Wmissing-prototypes -Wdeclarati
> > on-after-statement -DUSE_THREADS -D_THREAD_SAFE -D_REENTRANT
> > -DPOSIX_THREADS -D_POSIX_THREAD_SAFE_FUNCTIONS
> > -Ix86_64-unknown-linux-gnu/opt/smp -Ibeam -Isys/unix -Isys/common
> > -Ix86_64-unknown-linux
> > -gnu -Izlib  -Ipcre -Ihipe -I../include
> > -I../include/x86_64-unknown-linux-gnu -I../include/internal
> > -I../include/internal/x86_64-unknown-linux-gnu -c hipe/hipe_amd64.c -o
> > obj/x86_64-unknown-linux-gnu/opt/smp/hipe_amd64.o
> > hipe/hipe_amd64.c:40: warning: large integer implicitly truncated to
> > unsigned type
> > hipe/hipe_amd64.c:42: error: conflicting types for =91hipe_patch_load_f=
> e=92
> > hipe/hipe_arch.h:28: note: previous declaration of =91hipe_patch_load_f=
> e=92 was here
> > hipe/hipe_amd64.c:49: error: conflicting types for =91hipe_patch_insn=92=
>
> > hipe/hipe_arch.h:29: note: previous declaration of =91hipe_patch_insn=92=
>  was here
> > hipe/hipe_amd64.c: In function =91hipe_patch_call=92:
> > hipe/hipe_amd64.c:77: warning: cast from pointer to integer of differen=
> t size
> > hipe/hipe_amd64.c:77: warning: cast from pointer to integer of differen=
> t size
> > hipe/hipe_amd64.c: In function =91hipe_bifs_write_u64_2=92:
> > hipe/hipe_amd64.c:371: warning: passing argument 2 of =91term_to_Uint=92=
>
> > from incompatible pointer type
> > beam/big.h:152: note: expected =91Uint *=92 but argument is of type =91=
> Uint64 *=92
> > make[3]: *** [obj/x86_64-unknown-linux-gnu/opt/smp/hipe_amd64.o] Error =
> 1
> > make[3]: Leaving directory `/usr/local/src/otp_src_R14B02/erts/emulator=
> '
> > make[2]: *** [opt] Error 2
> > make[2]: Leaving directory `/usr/local/src/otp_src_R14B02/erts/emulator=
> '
> > :

The halfword emulator is a new beast with an execution mode that
differs significantly from existing 32- and 64-bit modes.  The build
error in the runtime code you got is just the tip of the iceberg,
non-trivial changes to the compiler would be required to support the
halfword emulator.

For now the best solution is to auto-disable HiPE if halfword emulator
is enabled, and error out if both are explicitly enabled.

(If someone wants to fund the development of HiPE support for
halfword emulator on Linux/AMD64, contact me offline.)

/Mikael

________________________________________________________________
erlang-bugs (at) erlang.org mailing list.
See http://www.erlang.org/faq.html
To unsubscribe; mailto:[hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Broken Hipe in R14B02

Sverker Eriksson
Mikael Pettersson wrote:
> For now the best solution is to auto-disable HiPE if halfword emulator
> is enabled, and error out if both are explicitly enabled.
>  
Agree. It will turn up in dev branch for next release.

/Sverker, Erlang/OTP



________________________________________________________________
erlang-bugs (at) erlang.org mailing list.
See http://www.erlang.org/faq.html
To unsubscribe; mailto:[hidden email]