Skip to content
This repository was archived by the owner on Nov 4, 2021. It is now read-only.

Commit 5d78f2d

Browse files
authored
Merge pull request #80 from YosysHQ/bugfix/79-ghdl-link
Bugfix/79 ghdl link
2 parents 1e3c81b + 9e388b4 commit 5d78f2d

File tree

11 files changed

+83
-9
lines changed

11 files changed

+83
-9
lines changed

azure-pipelines.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ variables:
1717
value: "1"
1818
- name: CLEAN_AFTER_BUILD
1919
value: "1"
20+
- name: STRIP_SYMBOLS
21+
value: "1"
2022
- name: COMPILE_DFU_UTIL
2123
value: "1"
2224
- name: COMPILE_YOSYS

build.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ INSTALL_DEPS="${INSTALL_DEPS:-1}"
2424
# (keeps disk space usage lower in CI runs)
2525
CLEAN_AFTER_BUILD="${CLEAN_AFTER_BUILD:-1}"
2626

27+
STRIP_SYMBOLS="${STRIP_SYMBOLS:-1}"
28+
2729
# Enable each individual tool
2830
COMPILE_DFU_UTIL="${COMPILE_DFU_UTIL:-1}"
2931
COMPILE_YOSYS="${COMPILE_YOSYS:-1}"

patches/ghdl/ghdl_largs.patch

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
diff --git a/Makefile.in b/Makefile.in
2+
index ddae0c82..2ab769d0 100644
3+
--- a/Makefile.in
4+
+++ b/Makefile.in
5+
@@ -200,7 +200,7 @@ GHDL_MCODE_INCFLAGS=$(GHDL_COMMON_INCFLAGS) -aI$(srcdir)/src/ghdldrv -aI$(srcdir
6+
ghdl_mcode$(EXEEXT): GRT_FLAGS+=-DWITH_GNAT_RUN_TIME
7+
ghdl_mcode$(EXEEXT): $(GRT_ADD_OBJS) $(GRT_SRC_DEPS) $(ORTHO_DEPS) \
8+
memsegs_c.o chkstk.o version.ads force
9+
- $(GNATMAKE) -o $@ -gnat12 $(GHDL_MCODE_INCFLAGS) $(GNATFLAGS) -gnatw.A ghdl_jit.adb $(GNAT_BARGS) -largs memsegs_c.o chkstk.o $(GRT_ADD_OBJS) $(LDFLAGS) $(subst @,$(GRTSRCDIR),$(GRT_EXTRA_LIB) $(GRT_EXEC_OPTS))
10+
+ $(GNATMAKE) -o $@ -gnat12 $(GHDL_MCODE_INCFLAGS) $(GNATFLAGS) -gnatw.A ghdl_jit.adb $(GNAT_BARGS) -largs memsegs_c.o chkstk.o $(GRT_ADD_OBJS) $(LDFLAGS) $(GNAT_LARGS) $(subst @,$(GRTSRCDIR),$(GRT_EXTRA_LIB) $(GRT_EXEC_OPTS))
11+
12+
memsegs_c.o: $(srcdir)/src/ortho/mcode/memsegs_c.c
13+
$(CC) -c $(COVERAGE_FLAGS) $(CFLAGS) -o $@ $<
14+
@@ -314,7 +314,7 @@ ghdl1-gcc$(EXEEXT): version.ads force
15+
ghdl_gcc$(EXEEXT): version.ads $(GRT_SYNTH_OBJS) force
16+
$(GNATMAKE) $(GHDL_GCC_INCFLAGS) -aI$(srcdir)/src/ghdldrv \
17+
$(GNATFLAGS) ghdl_gcc $(GNAT_BARGS) \
18+
- -largs $(LDFLAGS) $(GRT_SYNTH_OBJS)
19+
+ -largs $(LDFLAGS) $(GRT_SYNTH_OBJS) $(GNAT_LARGS)
20+
21+
libs.vhdl.local_gcc: ghdl_gcc$(EXEEXT) ghdl1-gcc$(EXEEXT)
22+
$(MAKE) -f $(srcdir)/libraries/Makefile.inc $(LIBVHDL_FLAGS_TO_PASS) GHDL=$(PWD)/ghdl_gcc$(EXEEXT) GHDL_FLAGS="--GHDL1=$(PWD)/ghdl1-gcc$(EXEEXT) $(LIB_CFLAGS)" vhdl.libs.all libs.vhdl.standard
23+
@@ -342,7 +342,7 @@ ghdl_llvm_jit$(EXEEXT): GRT_FLAGS+=-DWITH_GNAT_RUN_TIME
24+
ghdl_llvm_jit$(EXEEXT): $(GRT_ADD_OBJS) $(GRT_SRC_DEPS) $(ORTHO_DEPS) \
25+
llvm-cbindings.o version.ads force
26+
$(GNATMAKE) -o $@ $(GHDL_LLVM_INCFLAGS) $(GNATFLAGS) ghdl_jit.adb \
27+
- $(GNAT_BARGS) -largs llvm-cbindings.o $(GRT_ADD_OBJS) \
28+
+ $(GNAT_BARGS) -largs llvm-cbindings.o $(GNAT_LARGS) $(GRT_ADD_OBJS) \
29+
$(subst @,$(GRTSRCDIR),$(GRT_EXTRA_LIB)) --LINK=$(CXX) \
30+
`$(LLVM_CONFIG) --ldflags --libs --system-libs` $(LDFLAGS)
31+
32+
@@ -363,7 +363,7 @@ ghdl_llvm$(EXEEXT): version.ads $(GRT_SYNTH_OBJS) force
33+
$(GNATMAKE) $(GHDL_LLVM_INCFLAGS) \
34+
-aI$(srcdir)/src/ghdldrv $(GNATFLAGS) \
35+
ghdl_llvm $(GNAT_BARGS) \
36+
- -largs $(LDFLAGS) $(GRT_SYNTH_OBJS)
37+
+ -largs $(LDFLAGS) $(GRT_SYNTH_OBJS) $(GNAT_LARGS)
38+
39+
ghdl1-llvm$(EXEEXT): version.ads force
40+
$(MAKE) -f $(srcdir)/src/ortho/$(llvm_be)/Makefile \
41+
@@ -400,7 +400,7 @@ uninstall.llvm: uninstall.llvm.program uninstall.grt
42+
GHDL_SIMUL_INCFLAGS=$(GHDL_COMMON_INCFLAGS) -aI$(srcdir)/src/ghdldrv -aI$(srcdir)/src/vhdl/simulate -aI$(srcdir)/src/synth
43+
44+
ghdl_simul$(EXEEXT): $(GRT_ADD_OBJS) $(GRT_SRC_DEPS) version.ads force
45+
- $(GNATMAKE) $(GHDL_SIMUL_INCFLAGS) $(GNATFLAGS) -gnat12 ghdl_simul $(GNAT_BARGS) -largs $(LDFLAGS) $(GRT_ADD_OBJS) $(subst @,$(GRTSRCDIR),$(GRT_EXTRA_LIB))
46+
+ $(GNATMAKE) $(GHDL_SIMUL_INCFLAGS) $(GNATFLAGS) -gnat12 ghdl_simul $(GNAT_BARGS) -largs $(LDFLAGS) $(GNAT_LARGS) $(GRT_ADD_OBJS) $(subst @,$(GRTSRCDIR),$(GRT_EXTRA_LIB))
47+
48+
libs.vhdl.simul: ghdl_simul$(EXEEXT)
49+
$(MAKE) -f $(srcdir)/libraries/Makefile.inc $(LIBVHDL_FLAGS_TO_PASS) GHDL=$(PWD)/ghdl_simul$(EXEEXT) GHDL_FLAGS="" VHDLLIBS_COPY_OBJS=no vhdl.libs.all
50+
diff --git a/scripts/windows/mcode/Makefile.in b/scripts/windows/mcode/Makefile.in
51+
index 0f7b7422..be1f1151 100644
52+
--- a/scripts/windows/mcode/Makefile.in
53+
+++ b/scripts/windows/mcode/Makefile.in
54+
@@ -14,7 +14,7 @@ GRTSRCDIR=grt
55+
####grt Makefile.inc
56+
57+
ghdl_mcode: default_paths.ads $(GRT_ADD_OBJS) mmap_binding.o force
58+
- gnatmake -aIghdldrv -aIghdl -aIortho -aIgrt $(GNATFLAGS) ghdl_mcode $(GNAT_BARGS) -largs mmap_binding.o $(GRT_ADD_OBJS) $(GRT_EXTRA_LIB) -Wl,--version-script=$(GRTSRCDIR)/grt.ver -Wl,--export-dynamic
59+
+ gnatmake -aIghdldrv -aIghdl -aIortho -aIgrt $(GNATFLAGS) ghdl_mcode $(GNAT_BARGS) -largs mmap_binding.o $(GNAT_LARGS) $(GRT_ADD_OBJS) $(GRT_EXTRA_LIB) -Wl,--version-script=$(GRTSRCDIR)/grt.ver -Wl,--export-dynamic
60+
61+
mmap_binding.o: ortho/mmap_binding.c
62+
$(CC) -c -g -o $@ $<
File renamed without changes.
File renamed without changes.
File renamed without changes.

scripts/_common.sh

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,11 +112,15 @@ function strip_binaries() {
112112
then
113113
local dst_file=$PACKAGE_DIR/${NAME}_symbols/$path.dSYM
114114
dsymutil -o $dst_file $src_file
115-
strip $src_file
115+
if [ $STRIP_SYMBOLS == "1" ]; then
116+
strip $src_file
117+
fi
116118
else
117119
local dst_file=$PACKAGE_DIR/${NAME}_symbols/$path.debug
118120
objcopy --only-keep-debug "${src_file}" "${dst_file}"
119-
strip $src_file --strip-debug --strip-unneeded
121+
if [ $STRIP_SYMBOLS == "1" ]; then
122+
strip $src_file --strip-debug --strip-unneeded
123+
fi
120124
fi
121125
done
122126
}

scripts/compile_dfu_util.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ if [ $ARCH == "darwin" ]; then
1818
--includedir=/opt/local/include \
1919
USB_CFLAGS="-I$LIBUSB_ROOT/include/libusb-1.0" \
2020
USB_LIBS="$LIBUSB_ROOT/lib/libusb-1.0.a -Wl,-framework,IOKit -Wl,-framework,CoreFoundation"
21-
$MAKE
21+
$MAKE SUBDIRS=src
2222
elif [ ${ARCH:0:7} = "windows" ]
2323
then
2424
./configure USB_LIBS="-static -lpthread -lusb-1.0"
25-
$MAKE
25+
$MAKE SUBDIRS=src
2626
else
2727
./configure USB_CFLAGS="-I$WORK_DIR/build-data/include/libusb-1.0" USB_LIBS="-static $WORK_DIR/build-data/lib/$ARCH/libusb-1.0.a -lpthread"
28-
$MAKE
28+
$MAKE SUBDIRS=src
2929
fi
3030

3131
TOOLS="dfu-util dfu-prefix dfu-suffix"

scripts/compile_ghdl.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ cd $BUILD_DIR/$dir_name
1313
# remove unwanted -lz linker flag on Darwin (because it causes a dynamic link)
1414
$SED -i 's/^[ \t]*pragma Linker_Options ("-lz");//;' ./src/grt/grt-zlib.ads
1515
# customise the version string for ghdl
16-
patch -p1 < $WORK_DIR/scripts/ghdl_version.diff
16+
patch -p1 < $WORK_DIR/patches/ghdl/ghdl_version.patch
17+
patch -p1 < $WORK_DIR/patches/ghdl/ghdl_largs.patch
1718

1819
export GHDL_DESC="$(git -C $UPSTREAM_DIR/$dir_name describe --dirty 2> /dev/null)"
1920
sed -i -e "s/@BUILDER@/open-tool-forge.$VERSION/" src/version.in

scripts/compile_yosys.sh

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ set -e -x
55

66
dir_name=yosys
77
commit=master
8+
# commit=5eff0b73ae82ee490be3e732241eb22cb4bff952
89
git_url=https://github.com/YosysHQ/yosys.git
910

1011
dir_name_gyp=ghdl_yosys_plugin
@@ -25,7 +26,7 @@ MAKEFILE_CONF_GHDL=
2526
GHDL_LDLIBS=
2627
if [ $COMPILE_GHDL == "1" ]
2728
then
28-
patch < $WORK_DIR/scripts/yosys_ghdl.diff
29+
patch < $WORK_DIR/patches/yosys/yosys_ghdl.patch
2930

3031
mkdir -p frontends/ghdl
3132
cp -R ../$dir_name_gyp/src/* frontends/ghdl
@@ -67,7 +68,9 @@ elif [ ${ARCH:0:7} == "windows" ]; then
6768
ARCHFLAGS=\"$ABC_ARCHFLAGS\" \
6869
ABC_USE_NO_READLINE=1 \
6970
ABC_USE_NO_PTHREADS=1 \
70-
ABC_USE_LIBSTDCXX=1" \
71+
ABC_USE_LIBSTDCXX=1 \
72+
OPTFLAGS=\"-ggdb -O0\" \
73+
ABC_MAKE_VERBOSE=1" \
7174
ENABLE_TCL=0 ENABLE_PLUGINS=0 ENABLE_READLINE=0 ENABLE_COVER=0 ENABLE_ZLIB=0 ENABLE_ABC=1 \
7275
PYTHON="./bin/python3-private.exe" # override the shebang telling the exe launcher where to find python
7376

0 commit comments

Comments
 (0)