On 18/11/19 7:12 pm, Sebastian Huber wrote: > On 18/11/2019 08:59, Chris Johns wrote: >> >>> On 18 Nov 2019, at 6:14 pm, Sebastian Huber >>> <sebastian.hu...@embedded-brains.de> wrote: >>> >>> Hallo, >>> >>> on which platform passes the dl06 test? I tried arm/realview_pbx_a9_qemu and >>> got: >> >> It is a bug that has come in that I have not looked at. > > Is this a known issue or something which broke only recently? Do you know a > version/platform on which it worked?
The test broke a while ago when I made a change to ELF loading issues. I forget what the change was. I need to take a look and fix it but doing so means I need to revisit the RAP format and it's support and so it will take a bit of time to work through. I have had other more pressing things to working on. >>> *** BEGIN OF TEST libdl (RTL) 6 *** >>> *** TEST VERSION: 5.0.0.9438165d2cfb9a6a67f01f5ec7ba9156abb66d7d-modified >>> *** TEST STATE: EXPECTED-PASS >>> *** TEST BUILD: RTEMS_NETWORKING RTEMS_POSIX_API RTEMS_SMP >>> *** TEST TOOLS: 7.4.1 20190514 (RTEMS 5, RSB >>> a50f0c044ad732db728cc942d5fde82a1faf1d12, Newlib d14714c69) >>> >>> load: /dl06.rap >>> handle: 0x210ce0 loaded >>> Loaded module: argc:4 >>> [/home/EB/sebastian_h/git-rtems-5/c/src/../../testsuites/libtests/dl06/dl06-o1.c] >>> >>> libm: lcong48 >>> libm: atan2 >>> >>> *** FATAL *** >>> fatal source: 9 (RTEMS_FATAL_SOURCE_EXCEPTION) >>> >>> R0 = 0x00000000 R8 = 0x00000000 >>> R1 = 0x0000000a R9 = 0x00000000 >>> R2 = 0x00213149 R10 = 0x00000000 >>> R3 = 0x00000000 R11 = 0x00000000 >>> R4 = 0x00206cac R12 = 0x00000000 >>> R5 = 0x00000000 SP = 0x00206c80 >>> R6 = 0x00000000 LR = 0x00211e51 >>> R7 = 0x00206c80 PC = 0x00211e94 >>> CPSR = 0x00070173 VEC = 0x00000001 >>> FPEXC = 0x40000000 >>> FPSCR = 0x00000000 >>> D00 = 0x401c666666666666 >>> D01 = 0x4040800000000000 >>> D02 = 0x3fddac670561bb4f >>> D03 = 0x3fe921fb54442d18 >>> D04 = 0x3fef730bd281f69b >>> D05 = 0x3ff921fb54442d18 >>> D06 = 0x3c7a2b7f222f65e2 >>> D07 = 0x3c81a62633145c07 >>> D08 = 0x0000000000000000 >>> D09 = 0x0000000000000000 >>> D10 = 0x0000000000000000 >>> D11 = 0x0000000000000000 >>> D12 = 0x0000000000000000 >>> D13 = 0x0000000000000000 >>> D14 = 0x0000000000000000 >>> D15 = 0x0000000000000000 >>> D16 = 0x0000000000000000 >>> D17 = 0x0000000000000002 >>> D18 = 0x0000000000000000 >>> D19 = 0x0000000000000000 >>> D20 = 0x0000000000000000 >>> D21 = 0x0000000000000000 >>> D22 = 0x0000000000000000 >>> D23 = 0x0000000000000000 >>> D24 = 0x0000000000000000 >>> D25 = 0x0000000000000000 >>> D26 = 0x0000000000000000 >>> D27 = 0x0000000000000000 >>> D28 = 0x0000000000000000 >>> D29 = 0x0000000000000000 >>> D30 = 0x0000000000000000 >>> D31 = 0x0000000000000000 >>> RTEMS version: 5.0.0.9438165d2cfb9a6a67f01f5ec7ba9156abb66d7d-modified >>> RTEMS tools: 7.4.1 20190514 (RTEMS 5, RSB >>> a50f0c044ad732db728cc942d5fde82a1faf1d12, Newlib d14714c69) >>> executing thread ID: 0x08a010001 >>> executing thread name: UI1 >>> >>> I tried arm/xilinx_zynq_a9_qemu and got: >>> >>> *** BEGIN OF TEST libdl (RTL) 6 *** >>> *** TEST VERSION: 5.0.0.799c4f551806fb1124ea5d9f6633ec5deb91ad8e >>> *** TEST STATE: EXPECTED-PASS >>> *** TEST BUILD: RTEMS_DEBUG RTEMS_POSIX_API >>> *** TEST TOOLS: 7.4.1 20190514 (RTEMS 5, RSB >>> a50f0c044ad732db728cc942d5fde82a1faf1d12, Newlib d14714c69) >>> >>> load: /dl06.rap >>> dlopen failed: .text: THM_CALL/JUMP24: overflow: no tramp memory >>> >>> *** FATAL *** >>> fatal source: 5 (RTEMS_FATAL_SOURCE_EXIT) >>> fatal code: 0 (0x00000000) >>> RTEMS version: 5.0.0.799c4f551806fb1124ea5d9f6633ec5deb91ad8e >>> RTEMS tools: 7.4.1 20190514 (RTEMS 5, RSB >>> a50f0c044ad732db728cc942d5fde82a1faf1d12, Newlib d14714c69) >>> executing thread ID: 0x08a010001 >>> executing thread name: UI1 >>> >>> I would like to remove the PAX archives to simplify the build and reduce the >>> host dependencies. >> >> Is this because of handled the dependencies in waf? > > It is not a waf issue. I just want to get rid of another host dependency. pax > is > not a standard Linux tool. What do you mean when you say Linux is not standard, I get so confused with all the distros? I thought it was a standard tool and part of POSIX or something like that, checking, hmm yeah it is. This is why we changed, supporting standards and all that sort of thing. I am fine with tar being used if configure magic is used to select it. This may expose RTEMS tar support bugs, I cannot remember now. I do not use Linux and so I do not see these changes. >> Converting to C is a broken path IMO. it does not scale. > > I would convert the individual object files with bin2c and load them with > IMFS_make_linfile(). I see this as a broke way to handle building root file systems and to further embed in our build system and processes. Our users inspect what we do and take that as a lead and copy it. As I stated and Jonathan confirmed it does not scale. My preferred method is to use objcopy and to convert the bin tar file to an object file. >> I am not sure removing pax solves the need for 2 link passes. >> >>> It is not clear to me what the purpose of the dl06_pre_file file is. >> >> It tests the RAP format. > > How is the file used? It is a format dlopen() understands and can load. It provides a single encapsulation of loading an application by having some of the work done on a host rather than the target. It is a hybrid approach to loading on a single address space resource limited embedded system. It can hold a number of object files and it supports compression. When I made the latest set of libdl changes to add archive searching for the ELF format I was wondering if the RAP format was being used because I received little if any feedback or bugs on it. To my surprise I broke the RAP format with the archive searching changes and received a patch to fix it. It is being used in flight in a MIPS based satellite. Chris _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel