wwarthen / RomWBW

System Software for Z80/Z180/Z280 Computers
GNU Affero General Public License v3.0
323 stars 93 forks source link

I am working on Linux. Since Version 3.2.0 it is no longer working. First Problem is with zxcc. I am getting an error msg zxcc: Cannot locate bios.bin If I change to this path and do a make twice, it works. Second problem is it no longer generates die ROM-Images. It stops in HBIOS and asks for the he platform. I think there is a problem in the Build.sh which should call itself in a loop, but that doesn't work. #373

Closed hjkit closed 6 months ago

wwarthen commented 7 months ago

Hi @hjkit,

The distribution builds of RomWBW are all produced by an automated Linux build on GitHub. So, we just need to figure out why it is not working on your system.

Make sure you do a "make clean" in the top level directory before running a build.

I need some more information.

Thanks,

Wayne

hjkit commented 7 months ago

Hello Wayne, I am not able to reply to your github mail :-( Here is my answer Hello Wayne, First of all, thank you for taking care of my problem. I am running the Debian variant Mint with an AMD Ryzan CPU. Here is the relevant Linux info:

Linux Version cat /etc/os-release NAME="Linux Mint" VERSION="21.2 (Victoria)" ID=linuxmint ID_LIKE="ubuntu debian" PRETTY_NAME="Linux Mint 21.2" VERSION_ID="21.2"

uname -a Linux Ryzan 5.15.0-91-generic

I have downloaded 3 packages and none of them I can compile successfully. They are:

  1. first attempt with RomWBW-v3.2.0-Package make clean make

Here is the output where it stops:

../../../Tools/Linux/zxcc ../../../Tools/cpm/bin80//SLR180 -xmhb/HF

there is no log file !

  1. first attempt with RomWBW-v3.2.1-Package make clean make

../../../Tools/Linux/zxcc ../../../Tools/cpm/bin80//SLR180 -xmhb_old/HF

It looks similar to be V3.2.0

No log file

  1. first attempt with RomWBW-v3.4.0-dev.27-Package make clean make

Copying hd1k_prefix.dat to ../../Binary make[2]: Verzeichnis „/home/hajo/data/aaa-Local-Development/000-Z80/RomWBW/231205-RomWBW-v3.4.0-dev.27-Package/Source/Images“ wird verlassen make --directory HBIOS

Here the Makefile stops when generating the ROM images

Then I copied zxcc.c from RomWBW-v3.4.0-dev.27-Package/Tools/unix to

Here is the diff Output

diff zxcc.c zxcc.c-orig 30,138c130 < ssize_t len; < len = readlink("/proc/self/exe", dir, CPM_MAXPATH - 8); / allow room for bios.bin / < if (len < 0) < { < / len of -1 indicates an error occurred / < len = 0; < } < / Terminate the dir string with a NUL character / < dir[len] = 0;

  readlink("/proc/self/exe", dir, CPM_MAXPATH - 8);   /* allow room for bios.bin */

Now I started make clean and make in

Now the make runs through up to the ROM image build. It stops at the same point as with RomWBW-v3.4.0-dev.27-Package.

../../Tools/Linux/cpmchattr -f wbw_rom1024 rom1024_una.dat r 0:. make[2]: Verzeichnis „/home/hajo/data/aaa-Local-Development/000-Z80/RomWBW/231205-RomWBW-v3.2.0-Package/Source/RomDsk“ wird verlassen

I repeated the same for RomWBW-v3.2.1-Package

The make runs through to the ROM image build. It stops at the same point as RomWBW-v3.4.0-dev.27-Package.

make[2]: Verzeichnis „/home/hajo/data/aaa-Local-Development/000-Z80/RomWBW/231126-RomWBW-v3.2.1-Package/Source/RomDsk“ wird verlassen

My knowledge is not sufficient to analyze Build.sh.

No log files were generated during all my runs.

My last executable RomWBW version is RomWBW-v3.0.1-Package.

I hope this information is helpful for you.

wwarthen commented 7 months ago

Hi @hjkit,

Thank you for the additional information. It was very helpful.

In order to generate a log file when running make, you need to pipe the output to a file. For example:

make >make.log 2>&1

The change to zxcc.c was a bug fix that only impacted a few versions of Linux. It appears that this bug does affect your version of Linux. By applying the fix to the older versions of RomWBW, the build got past that problem. That is a good. However, I recommend that you use the development branch (e.g., v3.4.0-dev.XX) to avoid this problem. The development branch is reliable at this point.

When you run make without any parameters, the normal behavior is to prompt you to enter the platform and subsequently the configuration you want to build. It looks like this is what is happening and that is where the build stops (which is normal). At that point you just need to enter the platform and the build will continue.

To avoid getting the prompts, you can pass parameters to make to specify the platform and configuration. For example, the following command will build the RCZ80 platform using the std configuration without prompting:

make ROM_PLATFORM=RCZ80 ROM_CONFIG=std

If your desire is to build all of the ROMs as in a full distribution build, you can use this command:

make dist

Thanks,

Wayne

wwarthen commented 6 months ago

Hi @hjkit,

I am checking on the status of this issue. Are you able to complete the build process OK now

Thanks,

Wayne

wwarthen commented 6 months ago

I am going to close this issue due to lack of activity. @hjkit, please reopen this issue if necessary.

Thanks,

Wayne