efabless / caravel-gf180mcu

This repository is the GF180MCU port of Caravel. For more information about Caravel, see the original repo at https://github.com/efabless/caravel.
Apache License 2.0
8 stars 8 forks source link

Need "locking disable" as part of the "make ship" and "make truck" scripts. #176

Open RTimothyEdwards opened 1 year ago

RTimothyEdwards commented 1 year ago

Magic's file locking mechanism is designed for preventing users on a multi-user system (or processes on a multi-process system) from overwriting each other's layouts. However, it uses the standard file locking mechanism in Linux, which is to leave an open file descriptor to hold the lock on the file. Linux has a relatively low maximum limit on open file descriptors (< 1024) while the GF I/O library has a relatively large number of cells (> 1024). This leads to a failure to create new file descriptors, followed by a failure to open (otherwise perfectly good) files, ultimately producing unpredictable results, and bad layout/GDS. Executing the command "locking disable" at the beginning of a script avoids the problem altogether.

RTimothyEdwards commented 1 year ago

@jeffdi : I created a pull request with the correction some time ago, but it has been ignored.

jeffdi commented 1 year ago

@jeffdi to merge PR