mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-30 19:22:31 +00:00 
			
		
		
		
	Merge pull request #5008 from donn/wheel_builds_fix
wheels: fix builds, add linux aarch64 to ci
This commit is contained in:
		
						commit
						9f25f972dc
					
				
					 4 changed files with 25 additions and 39 deletions
				
			
		
							
								
								
									
										16
									
								
								.github/workflows/wheels.yml
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								.github/workflows/wheels.yml
									
										
									
									
										vendored
									
									
								
							|  | @ -14,16 +14,12 @@ jobs: | |||
|               runner: "ubuntu-22.04", | ||||
|               archs: "x86_64", | ||||
|             }, | ||||
|             ## Aarch64 is disabled for now: GitHub is committing to EOY | ||||
|             ## for free aarch64 runners for open-source projects and | ||||
|             ## emulation times out: | ||||
|             ## https://github.com/orgs/community/discussions/19197#discussioncomment-10550689 | ||||
|             # { | ||||
|             #   name: "Ubuntu 22.04", | ||||
|             #   family: "linux", | ||||
|             #   runner: "ubuntu-22.04", | ||||
|             #   archs: "aarch64", | ||||
|             # }, | ||||
|             { | ||||
|               name: "Ubuntu 22.04", | ||||
|               family: "linux", | ||||
|               runner: "ubuntu-22.04-arm", | ||||
|               archs: "aarch64", | ||||
|             }, | ||||
|             { | ||||
|               name: "macOS 13", | ||||
|               family: "macos", | ||||
|  |  | |||
							
								
								
									
										41
									
								
								Makefile
									
										
									
									
									
								
							
							
						
						
									
										41
									
								
								Makefile
									
										
									
									
									
								
							|  | @ -102,6 +102,7 @@ LIBS := $(LIBS) -lstdc++ -lm | |||
| PLUGIN_LINKFLAGS := | ||||
| PLUGIN_LIBS := | ||||
| EXE_LINKFLAGS := | ||||
| EXE_LIBS := | ||||
| ifeq ($(OS), MINGW) | ||||
| EXE_LINKFLAGS := -Wl,--export-all-symbols -Wl,--out-implib,libyosys_exe.a | ||||
| PLUGIN_LINKFLAGS += -L"$(LIBDIR)" | ||||
|  | @ -209,11 +210,11 @@ PYTHON_VERSION_TESTCODE := "import sys;t='{v[0]}.{v[1]}'.format(v=list(sys.versi | |||
| PYTHON_VERSION := $(shell $(PYTHON_EXECUTABLE) -c ""$(PYTHON_VERSION_TESTCODE)"") | ||||
| PYTHON_MAJOR_VERSION := $(shell echo $(PYTHON_VERSION) | cut -f1 -d.) | ||||
| 
 | ||||
| ENABLE_PYTHON_CONFIG_EMBED ?= $(shell $(PYTHON_EXECUTABLE)-config --embed --libs > /dev/null && echo 1) | ||||
| ifeq ($(ENABLE_PYTHON_CONFIG_EMBED),1) | ||||
| PYTHON_CONFIG := $(PYTHON_EXECUTABLE)-config --embed | ||||
| else | ||||
| PYTHON_CONFIG := $(PYTHON_EXECUTABLE)-config | ||||
| PYTHON_CONFIG_FOR_EXE := $(PYTHON_CONFIG) | ||||
| PYTHON_CONFIG_EMBED_AVAILABLE ?= $(shell $(PYTHON_EXECUTABLE)-config --embed --libs > /dev/null && echo 1) | ||||
| ifeq ($(PYTHON_CONFIG_EMBED_AVAILABLE),1) | ||||
| PYTHON_CONFIG_FOR_EXE := $(PYTHON_CONFIG) --embed | ||||
| endif | ||||
| 
 | ||||
| PYTHON_DESTDIR := $(shell $(PYTHON_EXECUTABLE) -c "import site; print(site.getsitepackages()[-1]);") | ||||
|  | @ -346,11 +347,11 @@ ifeq ($(ENABLE_PYOSYS),1) | |||
| # python-config --ldflags includes -l and -L, but LINKFLAGS is only -L
 | ||||
| LINKFLAGS += $(filter-out -l%,$(shell $(PYTHON_CONFIG) --ldflags)) | ||||
| LIBS += $(shell $(PYTHON_CONFIG) --libs) | ||||
| EXE_LIBS += $(filter-out $(LIBS),$(shell $(PYTHON_CONFIG_FOR_EXE) --libs)) | ||||
| CXXFLAGS += $(shell $(PYTHON_CONFIG) --includes) -DWITH_PYTHON | ||||
| EXTRA_TARGETS += wheel | ||||
| 
 | ||||
| # Detect name of boost_python library. Some distros use boost_python-py<version>, other boost_python<version>, some only use the major version number, some a concatenation of major and minor version numbers
 | ||||
| CHECK_BOOST_PYTHON = (echo "int main(int argc, char ** argv) {return 0;}" | $(CXX) -xc -o /dev/null $(LINKFLAGS) $(LIBS) -l$(1) - > /dev/null 2>&1 && echo "-l$(1)") | ||||
| CHECK_BOOST_PYTHON = (echo "int main(int argc, char ** argv) {return 0;}" | $(CXX) -xc -o /dev/null $(LINKFLAGS) $(EXE_LIBS) $(LIBS) -l$(1) - > /dev/null 2>&1 && echo "-l$(1)") | ||||
| BOOST_PYTHON_LIB ?= $(shell \
 | ||||
| 	$(call CHECK_BOOST_PYTHON,boost_python-py$(subst .,,$(PYTHON_VERSION))) || \
 | ||||
| 	$(call CHECK_BOOST_PYTHON,boost_python-py$(PYTHON_MAJOR_VERSION)) || \
 | ||||
|  | @ -735,7 +736,7 @@ share: $(EXTRA_TARGETS) | |||
| 	@echo "" | ||||
| 
 | ||||
| $(PROGRAM_PREFIX)yosys$(EXE): $(OBJS) | ||||
| 	$(P) $(CXX) -o $(PROGRAM_PREFIX)yosys$(EXE) $(EXE_LINKFLAGS) $(LINKFLAGS) $(OBJS) $(LIBS) $(LIBS_VERIFIC) | ||||
| 	$(P) $(CXX) -o $(PROGRAM_PREFIX)yosys$(EXE) $(EXE_LINKFLAGS) $(LINKFLAGS) $(OBJS) $(EXE_LIBS) $(LIBS) $(LIBS_VERIFIC) | ||||
| 
 | ||||
| libyosys.so: $(filter-out kernel/driver.o,$(OBJS)) | ||||
| ifeq ($(OS), Darwin) | ||||
|  | @ -967,20 +968,6 @@ unit-test: libyosys.so | |||
| clean-unit-test: | ||||
| 	@$(MAKE) -C $(UNITESTPATH) clean | ||||
| 
 | ||||
| ifeq ($(ENABLE_PYOSYS),1) | ||||
| wheel: $(TARGETS) | ||||
| 	$(PYTHON_EXECUTABLE) -m pip wheel . | ||||
| 
 | ||||
| install-wheel: wheel | ||||
| 	$(PYTHON_EXECUTABLE) -m pip install pyosys-$(YOSYS_MAJOR).$(YOSYS_MINOR).$(YOSYS_COMMIT)-*.whl --force-reinstall | ||||
| else | ||||
| wheel: | ||||
| 	$(error Pyosys is not enabled. Set ENABLE_PYOSYS=1 to enable it.) | ||||
| 
 | ||||
| install-wheel: | ||||
| 	$(error Pyosys is not enabled. Set ENABLE_PYOSYS=1 to enable it.) | ||||
| endif | ||||
| 
 | ||||
| install: $(TARGETS) $(EXTRA_TARGETS) | ||||
| 	$(INSTALL_SUDO) mkdir -p $(DESTDIR)$(BINDIR) | ||||
| 	$(INSTALL_SUDO) cp $(filter-out libyosys.so,$(TARGETS)) $(DESTDIR)$(BINDIR) | ||||
|  | @ -1000,7 +987,13 @@ ifeq ($(ENABLE_LIBYOSYS),1) | |||
| 	$(INSTALL_SUDO) cp libyosys.so $(DESTDIR)$(LIBDIR)/ | ||||
| 	$(INSTALL_SUDO) $(STRIP) -S $(DESTDIR)$(LIBDIR)/libyosys.so | ||||
| ifeq ($(ENABLE_PYOSYS),1) | ||||
| 	$(INSTALL_SUDO) @$(MAKE) install-wheel | ||||
| 	$(INSTALL_SUDO) mkdir -p $(DESTDIR)$(PYTHON_DESTDIR)/$(subst -,_,$(PROGRAM_PREFIX))pyosys | ||||
| 	$(INSTALL_SUDO) cp libyosys.so $(DESTDIR)$(PYTHON_DESTDIR)/$(subst -,_,$(PROGRAM_PREFIX))pyosys/libyosys.so | ||||
| 	$(INSTALL_SUDO) cp -r share $(DESTDIR)$(PYTHON_DESTDIR)/$(subst -,_,$(PROGRAM_PREFIX))pyosys | ||||
| ifeq ($(ENABLE_ABC),1) | ||||
| 	$(INSTALL_SUDO) cp yosys-abc $(DESTDIR)$(PYTHON_DESTDIR)/$(subst -,_,$(PROGRAM_PREFIX))pyosys/yosys-abc | ||||
| endif | ||||
| 	$(INSTALL_SUDO) cp misc/__init__.py $(DESTDIR)$(PYTHON_DESTDIR)/$(subst -,_,$(PROGRAM_PREFIX))pyosys/ | ||||
| endif | ||||
| endif | ||||
| ifeq ($(ENABLE_PLUGINS),1) | ||||
|  | @ -1016,7 +1009,9 @@ uninstall: | |||
| ifeq ($(ENABLE_LIBYOSYS),1) | ||||
| 	$(INSTALL_SUDO) rm -vf $(DESTDIR)$(LIBDIR)/libyosys.so | ||||
| ifeq ($(ENABLE_PYOSYS),1) | ||||
| 	$(INSTALL_SUDO) $(PYTHON_EXECUTABLE) -m pip uninstall -y pyosys | ||||
| 	$(INSTALL_SUDO) rm -vf $(DESTDIR)$(PYTHON_DESTDIR)/$(subst -,_,$(PROGRAM_PREFIX))pyosys/libyosys.so | ||||
| 	$(INSTALL_SUDO) rm -vf $(DESTDIR)$(PYTHON_DESTDIR)/$(subst -,_,$(PROGRAM_PREFIX))pyosys/__init__.py | ||||
| 	$(INSTALL_SUDO) rmdir $(DESTDIR)$(PYTHON_DESTDIR)/$(subst -,_,$(PROGRAM_PREFIX))pyosys | ||||
| endif | ||||
| endif | ||||
| 
 | ||||
|  |  | |||
|  | @ -62,5 +62,5 @@ EXTRA_OBJS += passes/techmap/filterlib.o | |||
| 
 | ||||
| $(PROGRAM_PREFIX)yosys-filterlib$(EXE): passes/techmap/filterlib.o | ||||
| 	$(Q) mkdir -p $(dir $@) | ||||
| 	$(P) $(CXX) -o $(PROGRAM_PREFIX)yosys-filterlib$(EXE) $(LINKFLAGS) $^ $(LIBS) | ||||
| 	$(P) $(CXX) -o $(PROGRAM_PREFIX)yosys-filterlib$(EXE) $(LINKFLAGS) $^ $(EXE_LIBS) $(LIBS) | ||||
| endif | ||||
|  |  | |||
							
								
								
									
										5
									
								
								setup.py
									
										
									
									
									
								
							
							
						
						
									
										5
									
								
								setup.py
									
										
									
									
									
								
							|  | @ -40,8 +40,6 @@ class libyosys_so_ext(Extension): | |||
|         ) | ||||
|         self.args = [ | ||||
|             "ENABLE_PYOSYS=1", | ||||
|             # Wheel meant to be imported from interpreter | ||||
|             "ENABLE_PYTHON_CONFIG_EMBED=0", | ||||
|             # Would need to be installed separately by the user | ||||
|             "ENABLE_TCL=0", | ||||
|             "ENABLE_READLINE=0", | ||||
|  | @ -87,9 +85,6 @@ class libyosys_so_ext(Extension): | |||
| 
 | ||||
|         shutil.copytree("share", share_target) | ||||
| 
 | ||||
|         # I don't know how debug info is getting here. | ||||
| 
 | ||||
| 
 | ||||
| class custom_build_ext(build_ext): | ||||
|     def build_extension(self, ext) -> None: | ||||
|         if not hasattr(ext, "custom_build"): | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue