[erlang-questions] Re: R14B Illegal instruction?
Fri Sep 17 23:06:43 CEST 2010
It is a 2005-vintage AMD Athlon XP (in a VMWare virtual machine).
Configuring with "--enable-ethread-pre-pentium4-compatibility
enable_ethread_pre_pentium4_compatibilit=yes" did the trick - Thanks!
On Fri, Sep 17, 2010 at 3:52 PM, Rickard Green <> wrote:
> Mark Scandariato wrote:
>> just built R14B for Ubuntu 9.04 (gcc version 4.3.3 (Ubuntu
>> 4.3.3-5ubuntu4)) and when I try to enable some async threads, I get an
>> "Illegal instruction" fault.
>> Here's a stack trace:
>> :~/otp_src_R14B$ bin/cerl -debug +A 4
>> Illegal instruction (core dumped)
>> :~/otp_src_R14B$ gdb --core=core
>> GNU gdb 6.8-debian
>> Copyright (C) 2008 Free Software Foundation, Inc.
>> License GPLv3+: GNU GPL version 3 or later <
>>> This is free software: you are free to change and redistribute it.
>> There is NO WARRANTY, to the extent permitted by law. Type "show copying"
>> and "show warranty" for details.
>> This GDB was configured as "i486-linux-gnu".
>> (no debugging symbols found)
>> Core was generated by
>> `/home/erlang/otp_src_R14B/bin/i686-pc-linux-gnu/beam.debug -A 4 -- -root
>> Program terminated with signal 4, Illegal instruction.
>> [New process 28563]
>> [New process 28587]
>> #0 0x0823d51a in ?? ()
>> (gdb) file /home/erlang/otp_src_R14B/bin/i686-pc-linux-gnu/beam.debug
>> Reading symbols from
>> (gdb) where
>> #0 ethr_event_reset__ (e=0xb769c030) at
>> #1 0x0823d723 in ethr_event_reset (e=0xb769c030) at
>> #2 0x0823cf1c in ethr_thr_create (tid=0xb7580ca4, func=0x81515c6
>> <async_main>, arg=0xb7580c48, opts=0xbfb85348) at pthread/ethread.c:256
>> #3 0x080cb160 in erts_thr_create (tid=0xb7580ca4, func=0x81515c6
>> <async_main>, arg=0xb7580c48, opts=0xbfb85348) at beam/erl_threads.h:348
>> #4 0x081511bb in init_async (hndl=6) at beam/erl_async.c:143
>> #5 0x081c62ab in async_drv_start (port_num=1, name=0x825f3fa "async",
>> opts=0xbfb85400) at sys/unix/sys.c:2375
>> #6 0x080e48d5 in erts_open_driver (driver=0xb769dbb8, pid=4294967291,
>> name=0x825f3fa "async", opts=0xbfb85400, error_number_ptr=0x0)
>> at beam/io.c:641
>> #7 0x081c66a5 in sys_init_io () at sys/unix/sys.c:2528
>> #8 0x080e60d3 in init_io () at beam/io.c:1304
>> #9 0x0809b41b in erl_init () at beam/erl_init.c:281
>> #10 0x0809dd25 in erl_start (argc=15, argv=0xbfb85704) at
>> #11 0x0807f126 in main (argc=4001536, argv=0x0) at sys/unix/erl_main.c:29
>> I can send a core file if anyone wants it.
> I suspect that you have an old x86 processor, and probably need to pass the
> --enable-ethread-pre-pentium4-compatibility command line argument to
> configure. See <
> However, I just noted that this flag is buggy and have no effect :( I'll
> fix that in the next release. As a workaround you can pass the following as
> arguments to configure:
> It is important that you pass both of them otherwise it wont work. You can
> verify that it worked by verifying that the following line exists in both
> $ERL_TOP/erts/include/internal/i686-pc-linux-gnu/ethread_header_config.h and
> #define ETHR_PRE_PENTIUM4_COMPAT 1
> In order to avoid trouble, don't reuse the source tree you have already
> built in. Build from scratch in a new one.
> Rickard Green, Erlang/OTP, Ericsson AB.
> erlang-questions (at) erlang.org mailing list.
> See http://www.erlang.org/faq.html
> To unsubscribe; mailto:
More information about the erlang-questions