AROS World Exec
Development => Development (General) => Topic started by: NathanH on April 27, 2023, 02:13:42 PM
-
Hi,
The following used to work fine (around 13 years ago was last I tried this command) but now it crashes AROS. I read here that it is a problem on 68k AROS too. The following AREXX program should list the current directory.
Add the following to a file called test.rexx:
--------------------------------------------------------------------
/* a bug in AREXX */
OPTIONS RESULTS
ADDRESS command 'List'
Exit
-------------------------------------------------------------------
Then from a shell type: rx test.rexx
AROS then crashes. Please add to the fix list. Thanks.
NathanH
-
Please try this version and let me know if it fixes the problem for you:
https://axrt.org/development/regina.library.i386.zip
-
Amazing, that totally fixes the problem. Thanks very much Deadwood!
NathanH
-
Glad it worked :)
-
@deadw00d: ABIv1 still crashes. Would you please tell what you changed?
-
@Mazze
Here is the commit: https://github.com/deadw00d/contrib/commit/8e3540ae350bd86c84f79d2ef2bc87b12c69ba98
Though it most likely is not suitable for ABIv1 as is - my branch has some changes with handling "libraries that require C library but the the program is not opening it" (like in this case). The cause of crash in my case was that regina wanted to strlen (I think) but per task StdCBase was not set.
-
Here's where it crashes in ABIv1:
#0 0x0000000041636e2c in __strlen_StdCBase_relwrapper () at /home/mazze/projects/fullaros/aros-linux-x86_64-dbg/bin/linux-x86_64/gen/compiler/stdc/stdc/linklib/stdc_strlen_relstub.c:29
#1 0x000000005f528b48 in CallEntry (argptr=0x0, argsize=0, entry=0x4162bbda <StartCommand>, me=0x41810e30) at /home/mazze/projects/fullaros/aros-src/rom/dos/./exit.c:127
-
Yes, its the same place.
If you 'disassemble' frame 0 and do 'p $eax' you should see that it does not contain a valid StdCBase. Applying my patch will 'solve' that problem, but I don't know if it won't created other problems. In my master branch I completely removed 'pertaskbase' libraries and changed how C libraries work. Eventually ABIv0 will also 'inherit' this change the the patch I shared won't be needed. I don't know what's the proper solution for ABIv1 though.