Hi Deric,

This is a known issue.
You can work around the problem in two different ways:

1) Cross-compile your program for aarch64
2) Hardcode the ISA.highestELIs64 to false as you are effectively 
cross-compiling for AArch32

Kind Regards

Giacomo

> -----Original Message-----
> From: Deric Cheung via gem5-users <gem5-users@gem5.org>
> Sent: 16 August 2021 15:19
> To: gem5 users mailing list <gem5-users@gem5.org>
> Cc: Deric Cheung <dache...@ualberta.ca>
> Subject: [gem5-users] Re: SE ARM: Assertion error in rename_map.hh on call
> to pthread_create using m5threads
>
> Here is the complete Exec trace as well, running it with --debug-flags=Exec:
> https://gist.github.com/Icohedron/4d1fef84b4266a5945cb707ab990bde4
>
> On Sun, Aug 15, 2021 at 10:48 PM Deric Cheung <dache...@ualberta.ca
> <mailto:dache...@ualberta.ca> > wrote:
>
>
>       I wrote a small program to test pthreads using the m5threads library
> on an ARM O3CPU using syscall emulation. However, when running the
> program, an assertion error is encountered which prevents it from executing.
>
>       Source code of the program (threads.c):
>       ```c
>       #include <stdio.h>
>       #include <pthread.h>
>
>       void *doWork(void *arg) {
>           printf("do work\n");
>       }
>
>       int main(int argc, char **argv) {
>           pthread_t thread;
>           int error = pthread_create(&thread, NULL, doWork, NULL);
>           if (error == 0) {
>               pthread_join(thread, NULL);
>           } else {
>               printf("pthread_create error %d\n",error);
>           }
>           return 0;
>       }
>       ```
>
>
>       Makefile used to compile it
>       ```Makefile
>       CCLOC= /arm-gem5-linux-gnueabi/bin/
>       CC = $(CCLOC)arm-gem5-linux-gnueabi-gcc
>       CPP = $(CCLOC)arm-gem5-linux-gnueabi-g++
>       OPTS = -g -O3 -march=armv7-a -marm
>
>       all: threads.arm
>
>       threads.arm: threads.o pthread.o
>       $(CPP) $(OPTS) -static -o threads.arm threads.o pthread.o
>
>       clean:
>       -rm *.o *.arm
>
>       threads.o: threads.c
>       $(CC) $(OPTS) -std=gnu99 -c threads.c
>
>       pthread.o:
>       $(CC) $(OPTS) -c m5threads/pthread.c -o pthread.o
>       ```
>
>
>       Command and output:
>       ```
>       $build/ARM/gem5.opt configs/example/se.py --num-cpus 2 --cpu-
> type O3CPU --caches -c thread-test/threads.arm
> build/ARM/base/statistics.hh:277: warn: One of the stats is a legacy stat.
> Legacy stat is a stat that does not belong to any statistics::Group. Legacy 
> stat
> is deprecated.
>       gem5 Simulator System.  http://gem5.org
>       gem5 is copyrighted software; use the --copyright option for details.
>
>       gem5 version 21.1.0.0
>       gem5 compiled Aug 12 2021 21:55:38
>       gem5 started Aug 15 2021 22:39:29
>       gem5 executing on uc14, pid 2265762
>       command line: build/ARM/gem5.opt configs/example/se.py --num-
> cpus 2 --cpu-type O3CPU --caches -c thread-test/threads.arm
>
>       warn: membus.slave is deprecated. `slave` is now called
> `cpu_side_ports`
>       warn: membus.slave is deprecated. `slave` is now called
> `cpu_side_ports`
>       warn: membus.slave is deprecated. `slave` is now called
> `cpu_side_ports`
>       warn: membus.slave is deprecated. `slave` is now called
> `cpu_side_ports`
>       warn: membus.slave is deprecated. `slave` is now called
> `cpu_side_ports`
>       warn: membus.slave is deprecated. `slave` is now called
> `cpu_side_ports`
>       warn: membus.slave is deprecated. `slave` is now called
> `cpu_side_ports`
>       warn: membus.slave is deprecated. `slave` is now called
> `cpu_side_ports`
>       warn: membus.slave is deprecated. `slave` is now called
> `cpu_side_ports`
>       Global frequency set at 1000000000000 ticks per second
>       warn: No dot file generated. Please install pydot to generate the dot
> file and pdf.
>       build/ARM/mem/mem_interface.cc:791: warn: DRAM device
> capacity (8192 Mbytes) does not match the address range assigned (512
> Mbytes)
>       0: system.remote_gdb: listening for remote gdb on port 7000
>       **** REAL SIMULATION ****
>       build/ARM/sim/simulate.cc:107: info: Entering event queue @ 0.
> Starting simulation...
>       build/ARM/arch/arm/regs/misc.cc:334: warn: CP14 unimplemented
> crn[14], opc1[7], crm[15], opc2[7]
>       build/ARM/sim/power_state.cc:105: warn: PowerState: Already in
> the requested power state, request ignored
>       build/ARM/arch/arm/isa.hh:658: warn: User mode does not have
> SPSR
>       build/ARM/arch/arm/isa.hh:658: warn: User mode does not have
> SPSR
>       gem5.opt: build/ARM/cpu/o3/rename_map.hh:280:
> gem5::PhysRegId* gem5::o3::UnifiedRenameMap::lookup(const
> gem5::RegId&) const: Assertion `vecMode == enums::Elem' failed.
>       Program aborted at tick 10204500
>       --- BEGIN LIBC BACKTRACE ---
>       build/ARM/gem5.opt(+0x55ef70)[0x55b186d5ef70]
>       build/ARM/gem5.opt(+0x59807e)[0x55b186d9807e]
>       /lib/x86_64-linux-gnu/libpthread.so.0(+0x153c0)[0x7fcba3b9a3c0]
>       /lib/x86_64-linux-gnu/libc.so.6(gsignal+0xcb)[0x7fcba313d18b]
>       /lib/x86_64-linux-gnu/libc.so.6(abort+0x12b)[0x7fcba311c859]
>       /lib/x86_64-linux-gnu/libc.so.6(+0x25729)[0x7fcba311c729]
>       /lib/x86_64-linux-gnu/libc.so.6(+0x36f36)[0x7fcba312df36]
>       build/ARM/gem5.opt(+0x80cc71)[0x55b18700cc71]
>       build/ARM/gem5.opt(+0x7fcf5a)[0x55b186ffcf5a]
>       build/ARM/gem5.opt(+0x8a82eb)[0x55b1870a82eb]
>       build/ARM/gem5.opt(+0xbd4c98)[0x55b1873d4c98]
>       build/ARM/gem5.opt(+0xc23f92)[0x55b187423f92]
>       build/ARM/gem5.opt(+0xc2442a)[0x55b18742442a]
>       build/ARM/gem5.opt(+0xbe9a84)[0x55b1873e9a84]
>       build/ARM/gem5.opt(+0xbecd7c)[0x55b1873ecd7c]
>       build/ARM/gem5.opt(+0xc30f9d)[0x55b187430f9d]
>       build/ARM/gem5.opt(+0xc3115f)[0x55b18743115f]
>       build/ARM/gem5.opt(+0x6415d7)[0x55b186e415d7]
>       build/ARM/gem5.opt(+0xbe7956)[0x55b1873e7956]
>       build/ARM/gem5.opt(+0xb4cef4)[0x55b18734cef4]
>       build/ARM/gem5.opt(+0x7f031b)[0x55b186ff031b]
>       build/ARM/gem5.opt(+0x7f144e)[0x55b186ff144e]
>       build/ARM/gem5.opt(+0x7f2cd0)[0x55b186ff2cd0]
>       build/ARM/gem5.opt(+0x7f3998)[0x55b186ff3998]
>       build/ARM/gem5.opt(+0x8048d9)[0x55b1870048d9]
>       build/ARM/gem5.opt(+0x573fc6)[0x55b186d73fc6]
>       build/ARM/gem5.opt(+0x5c4304)[0x55b186dc4304]
>       build/ARM/gem5.opt(+0x5c4b52)[0x55b186dc4b52]
>       build/ARM/gem5.opt(+0x1ae0d02)[0x55b1882e0d02]
>       build/ARM/gem5.opt(+0x594461)[0x55b186d94461]
>       /lib/x86_64-linux-
> gnu/libpython3.8.so.1.0(+0x2a8738)[0x7fcba3e50738]
>       /lib/x86_64-linux-
> gnu/libpython3.8.so.1.0(_PyEval_EvalFrameDefault+0x8dd8)[0x7fcba3c25f48]
>       --- END LIBC BACKTRACE ---
>       Aborted
>       ```
>
>       Backtrace of the assertion error:
> https://gist.github.com/Icohedron/3ef39945445095a2f034b0290311071d
>
>       Operating System: Ubuntu 20.04.2 LTS

IMPORTANT NOTICE: The contents of this email and any attachments are 
confidential and may also be privileged. If you are not the intended recipient, 
please notify the sender immediately and do not disclose the contents to any 
other person, use it for any purpose, or store or copy the information in any 
medium. Thank you.
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to