cnvogelg / amitools

Various tools for using AmigaOS programs on other platforms
250 stars 69 forks source link

smake only shows output of one sc call #174

Open titanlab opened 1 year ago

titanlab commented 1 year ago

Hello,

I use SAS/C in combination with your latest vamos. When I run smake only the output of one single sc spawn is shown, all other outputs is basically hidden. That means I want to use SAS/C to build my project but can only see the compiler output of one sc call.

CLI output (Linux, latest python 3.1, installed amitools from source):

[neo@fbook amiga]$ vamos -c vamosrc -C 30 -m 4096 smake all
SAS/C_SMAKE 6.58 (27.12.96)
Copyright (c) 1988-1995 SAS Institute, Inc.
bin already exists
obj already exists
    sc bob.c Math=standard IdentifierLength=63 PreprocessorBuffer=16384 IncludeDirectory=build/include_sas IncludeDirectory=lib/agaos IncludeDirectory=lib ObjectName=obj/bob.o nostackcheck
SAS/C Amiga Compiler 6.59
Copyright (c) 1988-1995 SAS Institute Inc.
--->>> HERE OUTPUT IS STOPPED <<<---
[neo@fbook amiga]$

vamosrc

[neo@fbook amiga]$ cat vamosrc
[volumes]
sc=../emu/SAS/sc
wb=../emu/DH0

[assigns]
include=sc:include
lib=sc:lib
libs=wb:Libs
c=wb:C

[path]
path=sc:c,wb:c

[vamos]
quiet=True
ram_size=2048

extract from SMakefile

.c.o:
    sc $*.c Math=standard IdentifierLength=63 PreprocessorBuffer=16384 IncludeDirectory=build/include_sas IncludeDirectory=lib/agaos IncludeDirectory=lib ObjectName=$@ nostackcheck

.s.o:
    vasm -phxass -Ibuild/include_i -Isrc -Ilib/agaos -Fhunk -quiet -no-opt -m68030 -DCPU=030 -DSASC -o $@ $*.s

all: prepare bin/sas/spinbow

prepare:
    -@MakeDir bin obj >NIL:

bin/sas/spinbow: obj/bob.o obj/bpd.o obj/c2p.o obj/copper.o obj/cvid.o obj/dbgbar.o \
    obj/dpartsys.o obj/font_sys.o obj/font.o obj/game.o obj/grid.o obj/ilbm.o \
    obj/input.o obj/intro.o obj/linalg.o obj/loader.o obj/lzrw5.o obj/math.o \
    obj/memory.o obj/music.o obj/pak.o obj/partsys.o obj/rect.o obj/rtg_font.o \
    obj/rtg.o obj/scene_main.o obj/scene.o obj/sersync.o obj/slz.o obj/sprite_mplex.o \
    obj/sprite.o obj/sys.o obj/timer.o obj/xd_camera.o obj/xd_engine.o obj/xd_light.o \
    obj/xd_object.o obj/xd_polflat.o obj/xd_polygon.o obj/xd_render.o obj/xd_scene.o \
    obj/voxel.o
    slink with SLinkfile

obj/bob.o: bob.c
obj/bpd.o: bpd.c
obj/c2p.o: c2p.c
obj/copper.o: copper.c
obj/cvid.o: cvid.c
obj/dbgbar.o: dbgbar.c
# more files follow here...

Do you have an idea why?

titanlab commented 1 year ago

Also, if I compile a lot of files from the SMakefile (I now have around ~30 phxass calls and ~40 sc calls), I get the following error:

    sc bob.c Math=standard IdentifierLength=63 PreprocessorBuffer=16384 ObjectName=obj/bob.o nostackcheck noversion
11:40:49.369       lock:  ERROR:  no more lock slots! max=1024
11:40:50.958       lock:  ERROR:  no more lock slots! max=1024
11:40:50.961    machine:  ERROR:  ----- ERROR in CPU Run #1 -----
11:40:50.961    machine:  ERROR:  Run: 'smake': Initial PC=00229c, SP=00bd18
11:40:50.961    machine:  ERROR:  PC=00001c26  SR=-----    USP=0000b99c ISP=00000700 MSP=00000780
11:40:50.961    machine:  ERROR:  D0=ffffffff  D1=0000c7f4  D2=0000b9b0  D3=00000000  D4=00000000  D5=00000000  D6=00000000  D7=00000000
11:40:50.961    machine:  ERROR:  A0=0000b9b0  A1=0000c7f4  A2=0001eaa8  A3=0000b9cc  A4=0000bf7c  A5=0000c7f4  A6=00001ae8  A7=0000b99c
11:40:50.961    machine:  ERROR:  SP-32=00133c SP-28=000001 SP-24=008a98 SP-20=00000a SP-16=00c2ee SP-12=009630 SP-08=000000 SP-04=000077
11:40:50.961    machine:  ERROR:  SP+00=007110 SP+04=00ffff SP+08=000000 SP+12=00c7f4 SP+16=00133c SP+20=80000021 SP+24=00088a SP+28=80000022
11:40:50.962    machine:  ERROR:  Traceback (most recent call last):
11:40:50.962    machine:  ERROR:    File "machine/pytraps.pyx", line 19, in machine.emu.trap_wrapper
11:40:50.962    machine:  ERROR:    File "/home/neo/.local/lib/python3.10/site-packages/amitools/vamos/libcore/stub.py", line 165, in base_func
11:40:50.962    machine:  ERROR:      res = method(ctx)
11:40:50.962    machine:  ERROR:    File "/home/neo/.local/lib/python3.10/site-packages/amitools/vamos/lib/DosLibrary.py", line 1609, in SystemTagList
11:40:50.962    machine:  ERROR:      proc = Process(ctx, binary, arg_str, cwd=cwd, cwd_lock=cwd_lock)
11:40:50.962    machine:  ERROR:    File "/home/neo/.local/lib/python3.10/site-packages/amitools/vamos/lib/dos/Process.py", line 67, in __init__
11:40:50.962    machine:  ERROR:      self.init_task_struct(input_fh, output_fh)
11:40:50.962    machine:  ERROR:    File "/home/neo/.local/lib/python3.10/site-packages/amitools/vamos/lib/dos/Process.py", line 299, in init_task_struct
11:40:50.962    machine:  ERROR:      self.this_task.access.w_s("pr_HomeDir", self.home_lock.b_addr << 2)
11:40:50.962    machine:  ERROR:  AttributeError: 'NoneType' object has no attribute 'b_addr'
11:40:50.962       main:  ERROR:  vamos failed!

If I manually increase the number of slots to 2048 in the LockManager, it's fine. Any idea how I can analyze/fix that?