diff options
author | Adrian Perez de Castro | 2020-10-26 16:56:47 +0200 |
---|---|---|
committer | Adrian Perez de Castro | 2020-10-26 16:56:47 +0200 |
commit | eb6c1d42a24941c687684ea30df837c2bef503c0 (patch) | |
tree | 13ed94905a8d1fd335155e87716022aee261c63a | |
parent | 1843b035c7e55d3e00c104e0c685231201fde0f7 (diff) | |
download | aur-eb6c1d42a24941c687684ea30df837c2bef503c0.tar.gz |
Bump to version 1.5.0
This new release now includes the IEEE VHDL libraries, so we don't
need to download and copy them around by hand. The patches to use
newer LLVM versions are not needed anymore. Lastly, now we pass a
few --enable-foo and --with-bar options to the configure script to
enable additional features.
-rw-r--r-- | .SRCINFO | 30 | ||||
-rw-r--r-- | 01-llvm7-support.patch | 70 | ||||
-rw-r--r-- | 02-fix-warnings.patch | 154 | ||||
-rw-r--r-- | 03-fix-segfault.patch | 25 | ||||
-rw-r--r-- | PKGBUILD | 77 |
5 files changed, 28 insertions, 328 deletions
@@ -1,7 +1,7 @@ pkgbase = nvc pkgdesc = VHDL compiler and simulator - pkgver = 1.4.0 - pkgrel = 3 + pkgver = 1.5.0 + pkgrel = 1 url = https://github.com/nickg/nvc arch = x86_64 arch = i686 @@ -16,29 +16,11 @@ pkgbase = nvc makedepends = autoconf depends = libelf depends = llvm-libs + depends = ncurses + optdepends = ruby: for the scripts to download and install VHDL libraries conflicts = nvc-git - source = https://github.com/nickg/nvc/releases/download/r1.4.0/nvc-1.4.0.tar.gz - source = https://standards.ieee.org/content/dam/ieee-standards/standards/web/download/1076.2-1996_downloads.zip - source = https://raw.githubusercontent.com/tgingold/ghdl/master/libraries/vital2000/timing_p.vhdl - source = https://raw.githubusercontent.com/tgingold/ghdl/master/libraries/vital2000/timing_b.vhdl - source = https://raw.githubusercontent.com/tgingold/ghdl/master/libraries/vital2000/prmtvs_p.vhdl - source = https://raw.githubusercontent.com/tgingold/ghdl/master/libraries/vital2000/prmtvs_b.vhdl - source = https://raw.githubusercontent.com/tgingold/ghdl/master/libraries/vital2000/memory_p.vhdl - source = https://raw.githubusercontent.com/tgingold/ghdl/master/libraries/vital2000/memory_b.vhdl - source = 01-llvm7-support.patch - source = 02-fix-warnings.patch - source = 03-fix-segfault.patch - sha512sums = 4450f035c0355befa18636748b7eddb0a4710d4db3b38dfba581ecfc5f1bdaa02ddcbcc1b5cbe42cfcb23688288095c9d06f83e240b8ae59c65163c5db61aba6 - sha512sums = 428ebaaa02eb25240569c90e907828ce87e7a18e3a61d9809dda8ecc0bb46a59d0d6c15e625cc0d8e92b26d37dae3be68b480acc77326c07b763fd986bd8e563 - sha512sums = bdc38f3f3b5f9b0e572277e8a984361fec7fc877db7ee819bfe4cc9de0f101e53d52472b39b0d3b2c931b50af942378002481dff8e4b99732823ec8d364abe12 - sha512sums = affb483b7a2c2cf8e99619696289f578ff0c28b980d3807d9d3b815874af94ccaeb92adb9415409256b1ddd399cc64eefa52648a42913259af275eea871547b3 - sha512sums = 741b95985a4a98427d459dba141eebca2fbc3b1a1a3c1cf237d5b6e9d5e12417a9568b38f98049ffdaaa6d6ea11604a869a53a1b66956d61c6487e53b719b309 - sha512sums = f0f604bb5bd1e0a8a2a15a4ac5180948e35be30f1479646ddf52803100dcf2c3b8546722f23a81934d006be1b25b44a7fd76ba3dbc8a1ad670560b405f53a0f2 - sha512sums = 7358582b3f3877c8492b8cce1bc238dc6ef60818cdfe7e4a2ed5cb50ffe74c81221b7e473e59504328d2583c7e555457be50faf9238402bce1f6236586891c51 - sha512sums = 41d9d4862db13cf741fa857ca085ba3fa3596d61eb8276effcfe8b9b7359479670c83fe525a98b595f523506c821b2ed3569fa72df5f62a6f83f7805436b02bf - sha512sums = 3e82eddc83d3f0d63097b476e6f9e97e12e9aba4526f4d03c838b52abaa828e60f2ddb88dc6776d0a53417f6f6df6fbea6ff5bbbaafae11e8c03de2082d88b46 - sha512sums = d38d400546de1c6a2f5c732a4e6af50641b6fe95435cd0fd410f9feeba4cac7660400799a80178300d6a84522f73719bd1bc7ae89af480a37da85c777235dba7 - sha512sums = d41e1f6a2c7d5a6a1f25619b3c836534a25dd955d3ee6ce9580951a6e32d488da66c0d2d8e1976d63d5a7539146126dbbfc946114a7ac9e7e40fc088f43ddae0 + source = https://github.com/nickg/nvc/releases/download/r1.5.0/nvc-1.5.tar.gz + sha512sums = b27afd32b86bf6242fae0bb06051eab818936ec457891b43d0a397781851670e8d0e16e17eaa285cf1af0c32c7915b89458e39aa1bbbc305c280bbcb963bd647 pkgname = nvc diff --git a/01-llvm7-support.patch b/01-llvm7-support.patch deleted file mode 100644 index 83d2185e6dc2..000000000000 --- a/01-llvm7-support.patch +++ /dev/null @@ -1,70 +0,0 @@ -From 3c61c812e111b5458e0ccebec09f9e101e7ad61a Mon Sep 17 00:00:00 2001 -From: Nick Gasson <nick@nickg.me.uk> -Date: Sat, 5 Jan 2019 20:14:52 +0800 -Subject: [PATCH] Fix build with LLVM 7.0 - ---- - m4/ax_llvm_c.m4 | 5 +++++ - src/cgen.c | 8 ++++++++ - 2 files changed, 13 insertions(+) - -diff --git a/m4/ax_llvm_c.m4 b/m4/ax_llvm_c.m4 -index 22f6060b..661f3216 100644 ---- a/m4/ax_llvm_c.m4 -+++ b/m4/ax_llvm_c.m4 -@@ -95,6 +95,11 @@ AC_DEFUN([AX_LLVM_C], [ - [LLVM has new ORC API]) - fi - -+ if test "$llvm_ver_num" -lt "70"; then -+ AC_DEFINE_UNQUOTED(LLVM_INTRINSIC_ALIGN, [1], -+ [LLVM intrinsics have alignment param]) -+ fi -+ - LLVM_OBJ_EXT="o" - case $host_os in - *cygwin*|msys*|mingw32*) -diff --git a/src/cgen.c b/src/cgen.c -index 1fd062ae..c4120dd2 100644 ---- a/src/cgen.c -+++ b/src/cgen.c -@@ -2029,7 +2029,9 @@ static void cgen_op_copy(int op, cgen_ctx_t *ctx) - llvm_void_cast(dest), - llvm_void_cast(src), - bytes, -+#if LLVM_INTRINSIC_ALIGN - llvm_int32(4), -+#endif - llvm_int1(0) - }; - LLVMBuildCall(builder, llvm_fn(cgen_memcpy_name("memmove", 8)), -@@ -2229,7 +2231,9 @@ static void cgen_op_memset(int op, cgen_ctx_t *ctx) - llvm_void_cast(ptr), - LLVMBuildZExt(builder, value, LLVMInt8Type(), ""), - length, -+#if LLVM_INTRINSIC_ALIGN - llvm_int32(4), -+#endif - llvm_int1(false) - }; - -@@ -3769,7 +3773,9 @@ static LLVMValueRef cgen_support_fn(const char *name) - LLVMPointerType(LLVMInt8Type(), 0), - LLVMInt8Type(), - LLVMInt32Type(), -+#if LLVM_INTRINSIC_ALIGN - LLVMInt32Type(), -+#endif - LLVMInt1Type() - }; - fn = LLVMAddFunction(module, "llvm.memset.p0i8.i32", -@@ -3786,7 +3792,9 @@ static LLVMValueRef cgen_support_fn(const char *name) - LLVMPointerType(LLVMIntType(width), 0), - LLVMPointerType(LLVMIntType(width), 0), - LLVMInt32Type(), -+#if LLVM_INTRINSIC_ALIGN - LLVMInt32Type(), -+#endif - LLVMInt1Type() - }; - fn = LLVMAddFunction(module, cgen_memcpy_name(kind, width), diff --git a/02-fix-warnings.patch b/02-fix-warnings.patch deleted file mode 100644 index 012ade80eee4..000000000000 --- a/02-fix-warnings.patch +++ /dev/null @@ -1,154 +0,0 @@ -From 96f9409733cdbcfebe93498f84815d31d8fd43a8 Mon Sep 17 00:00:00 2001 -From: Nick Gasson <nick@nickg.me.uk> -Date: Mon, 11 Mar 2019 21:23:07 +0800 -Subject: [PATCH] Fix warnings with GCC 8.3 - ---- - src/cgen.c | 6 ------ - src/lib.c | 17 +++++++++-------- - src/rt/fst.c | 5 +++-- - src/rt/vcd.c | 5 +++-- - src/vcode.c | 4 ++-- - 5 files changed, 17 insertions(+), 20 deletions(-) - -diff --git a/src/cgen.c b/src/cgen.c -index c4120dd2..a181f5c6 100644 ---- a/src/cgen.c -+++ b/src/cgen.c -@@ -3595,12 +3595,6 @@ static void cgen_optimise(void) - { - LLVMPassManagerRef pass_mgr = LLVMCreatePassManager(); - -- LLVMAddPromoteMemoryToRegisterPass(pass_mgr); -- LLVMAddInstructionCombiningPass(pass_mgr); -- LLVMAddReassociatePass(pass_mgr); -- LLVMAddGVNPass(pass_mgr); -- LLVMAddCFGSimplificationPass(pass_mgr); -- - LLVMPassManagerBuilderRef builder = LLVMPassManagerBuilderCreate(); - LLVMPassManagerBuilderSetOptLevel(builder, opt_get_int("optimise")); - LLVMPassManagerBuilderPopulateModulePassManager(builder, pass_mgr); -diff --git a/src/lib.c b/src/lib.c -index 2d73d481..82908c81 100644 ---- a/src/lib.c -+++ b/src/lib.c -@@ -1,5 +1,5 @@ - // --// Copyright (C) 2011-2017 Nick Gasson -+// Copyright (C) 2011-2019 Nick Gasson - // - // This program is free software: you can redistribute it and/or modify - // it under the terms of the GNU General Public License as published by -@@ -231,8 +231,8 @@ static lib_unit_t *lib_put_aux(lib_t lib, tree_t unit, - static lib_t lib_find_at(const char *name, const char *path, bool exact) - { - char dir[PATH_MAX]; -- char *p = dir + snprintf(dir, sizeof(dir) - 4 - strlen(name), -- "%s" PATH_SEP, path); -+ char *p = dir + checked_sprintf(dir, sizeof(dir) - 4 - strlen(name), -+ "%s" PATH_SEP, path); - bool found = false; - - if (!exact) { -@@ -242,7 +242,7 @@ static lib_t lib_find_at(const char *name, const char *path, bool exact) - - // Try suffixing standard revision extensions first - for (vhdl_standard_t s = standard(); (s > STD_87) && !found; s--) { -- snprintf(p, 4, ".%s", standard_suffix(s)); -+ checked_sprintf(p, 4, ".%s", standard_suffix(s)); - found = (access(dir, F_OK) == 0); - } - } -@@ -254,7 +254,7 @@ static lib_t lib_find_at(const char *name, const char *path, bool exact) - } - - char marker[PATH_MAX]; -- snprintf(marker, sizeof(marker), "%s" PATH_SEP "_NVC_LIB", dir); -+ checked_sprintf(marker, sizeof(marker), "%s" PATH_SEP "_NVC_LIB", dir); - if (access(marker, F_OK) < 0) - return NULL; - -@@ -264,7 +264,7 @@ static lib_t lib_find_at(const char *name, const char *path, bool exact) - static const char *lib_file_path(lib_t lib, const char *name) - { - static char buf[PATH_MAX]; -- snprintf(buf, sizeof(buf), "%s" PATH_SEP "%s", lib->path, name); -+ checked_sprintf(buf, sizeof(buf), "%s" PATH_SEP "%s", lib->path, name); - return buf; - } - -@@ -525,7 +525,8 @@ void lib_destroy(lib_t lib) - struct dirent *e; - while ((e = readdir(d))) { - if (e->d_name[0] != '.') { -- snprintf(buf, sizeof(buf), "%s" PATH_SEP "%s", lib->path, e->d_name); -+ checked_sprintf(buf, sizeof(buf), "%s" PATH_SEP "%s", -+ lib->path, e->d_name); - if (unlink(buf) < 0) - perror("unlink"); - } -@@ -786,7 +787,7 @@ void lib_realpath(lib_t lib, const char *name, char *buf, size_t buflen) - assert(lib != NULL); - - if (name) -- snprintf(buf, buflen, "%s" PATH_SEP "%s", lib->path, name); -+ checked_sprintf(buf, buflen, "%s" PATH_SEP "%s", lib->path, name); - else - strncpy(buf, lib->path, buflen); - } -diff --git a/src/rt/fst.c b/src/rt/fst.c -index e0aebe6c..686e91d7 100644 ---- a/src/rt/fst.c -+++ b/src/rt/fst.c -@@ -288,9 +288,10 @@ static void fst_process_signal(tree_t d) - const char *name_base = strrchr(istr(tree_ident(d)), ':') + 1; - const size_t base_len = strlen(name_base); - char name[base_len + 64]; -- strncpy(name, name_base, base_len + 64); - if (type_is_array(type)) -- snprintf(name + base_len, 64, "[%d:%d]\n", msb, lsb); -+ checked_sprintf(name, sizeof(name), "%s[%d:%d]\n", name_base, msb, lsb); -+ else -+ checked_sprintf(name, sizeof(name), "%s", name_base); - - data->handle = fstWriterCreateVar2( - fst_ctx, -diff --git a/src/rt/vcd.c b/src/rt/vcd.c -index 09141488..1f21d687 100644 ---- a/src/rt/vcd.c -+++ b/src/rt/vcd.c -@@ -187,9 +187,10 @@ static void vcd_process_signal(tree_t d, int *next_key) - const char *name_base = strrchr(istr(tree_ident(d)), ':') + 1; - const size_t base_len = strlen(name_base); - char name[base_len + 64]; -- strncpy(name, name_base, base_len + 64); - if (type_is_array(type)) -- snprintf(name + base_len, 64, "[%d:%d]\n", msb, lsb); -+ checked_sprintf(name, sizeof(name), "%s[%d:%d]\n", name_base, msb, lsb); -+ else -+ checked_sprintf(name, sizeof(name), "%s", name_base); - - tree_add_attr_ptr(d, vcd_data_i, data); - -diff --git a/src/vcode.c b/src/vcode.c -index f1745744..6ea9db43 100644 ---- a/src/vcode.c -+++ b/src/vcode.c -@@ -2682,7 +2682,7 @@ int vcode_unit_depth(void) - vcode_type_t vcode_unit_result(void) - { - assert(active_unit != NULL); -- assert(active_unit->kind = VCODE_UNIT_FUNCTION); -+ assert(active_unit->kind == VCODE_UNIT_FUNCTION); - return active_unit->result; - } - -@@ -5096,7 +5096,7 @@ static void vcode_write_unit(vcode_unit_t unit, fbuf_t *f, - - void vcode_write(vcode_unit_t unit, fbuf_t *f) - { -- assert(unit->kind = VCODE_UNIT_CONTEXT); -+ assert(unit->kind == VCODE_UNIT_CONTEXT); - - write_u32(VCODE_MAGIC, f); - write_u8(VCODE_VERSION, f); diff --git a/03-fix-segfault.patch b/03-fix-segfault.patch deleted file mode 100644 index 4323b8c4d749..000000000000 --- a/03-fix-segfault.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 122055b1b359d2890e3bd2050de1ffb0ee06050b Mon Sep 17 00:00:00 2001 -From: Nick Gasson <nick@nickg.me.uk> -Date: Sun, 17 Mar 2019 21:03:34 +0800 -Subject: [PATCH] Fix segfault with -O0 - ---- - src/cgen.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/src/cgen.c b/src/cgen.c -index a181f5c6..e251f562 100644 ---- a/src/cgen.c -+++ b/src/cgen.c -@@ -3595,6 +3595,11 @@ static void cgen_optimise(void) - { - LLVMPassManagerRef pass_mgr = LLVMCreatePassManager(); - -+ LLVMAddInstructionCombiningPass(pass_mgr); -+ LLVMAddReassociatePass(pass_mgr); -+ LLVMAddGVNPass(pass_mgr); -+ LLVMAddCFGSimplificationPass(pass_mgr); -+ - LLVMPassManagerBuilderRef builder = LLVMPassManagerBuilderCreate(); - LLVMPassManagerBuilderSetOptLevel(builder, opt_get_int("optimise")); - LLVMPassManagerBuilderPopulateModulePassManager(builder, pass_mgr); @@ -1,76 +1,43 @@ # Maintainer: Adrian Perez de Castro <aperez@igalia.com> pkgdesc='VHDL compiler and simulator' pkgname=nvc -pkgver=1.4.0 -pkgrel=3 -url='https://github.com/nickg/nvc' +pkgver=1.5.0 +pkgrel=1 +url=https://github.com/nickg/nvc license=(GPL3) -depends=(libelf llvm-libs) conflicts=(nvc-git) arch=(x86_64 i686) +depends=(libelf llvm-libs ncurses) makedepends=(pkgconfig make flex check llvm tcl automake autoconf) - -_vital_url='https://raw.githubusercontent.com/tgingold/ghdl/master/libraries/vital2000' - -source=("${url}/releases/download/r${pkgver}/${pkgname}-${pkgver}.tar.gz" - "https://standards.ieee.org/content/dam/ieee-standards/standards/web/download/1076.2-1996_downloads.zip" - "${_vital_url}/timing_p.vhdl" - "${_vital_url}/timing_b.vhdl" - "${_vital_url}/prmtvs_p.vhdl" - "${_vital_url}/prmtvs_b.vhdl" - "${_vital_url}/memory_p.vhdl" - "${_vital_url}/memory_b.vhdl" - 01-llvm7-support.patch - 02-fix-warnings.patch - 03-fix-segfault.patch) -sha512sums=('4450f035c0355befa18636748b7eddb0a4710d4db3b38dfba581ecfc5f1bdaa02ddcbcc1b5cbe42cfcb23688288095c9d06f83e240b8ae59c65163c5db61aba6' - '428ebaaa02eb25240569c90e907828ce87e7a18e3a61d9809dda8ecc0bb46a59d0d6c15e625cc0d8e92b26d37dae3be68b480acc77326c07b763fd986bd8e563' - 'bdc38f3f3b5f9b0e572277e8a984361fec7fc877db7ee819bfe4cc9de0f101e53d52472b39b0d3b2c931b50af942378002481dff8e4b99732823ec8d364abe12' - 'affb483b7a2c2cf8e99619696289f578ff0c28b980d3807d9d3b815874af94ccaeb92adb9415409256b1ddd399cc64eefa52648a42913259af275eea871547b3' - '741b95985a4a98427d459dba141eebca2fbc3b1a1a3c1cf237d5b6e9d5e12417a9568b38f98049ffdaaa6d6ea11604a869a53a1b66956d61c6487e53b719b309' - 'f0f604bb5bd1e0a8a2a15a4ac5180948e35be30f1479646ddf52803100dcf2c3b8546722f23a81934d006be1b25b44a7fd76ba3dbc8a1ad670560b405f53a0f2' - '7358582b3f3877c8492b8cce1bc238dc6ef60818cdfe7e4a2ed5cb50ffe74c81221b7e473e59504328d2583c7e555457be50faf9238402bce1f6236586891c51' - '41d9d4862db13cf741fa857ca085ba3fa3596d61eb8276effcfe8b9b7359479670c83fe525a98b595f523506c821b2ed3569fa72df5f62a6f83f7805436b02bf' - '3e82eddc83d3f0d63097b476e6f9e97e12e9aba4526f4d03c838b52abaa828e60f2ddb88dc6776d0a53417f6f6df6fbea6ff5bbbaafae11e8c03de2082d88b46' - 'd38d400546de1c6a2f5c732a4e6af50641b6fe95435cd0fd410f9feeba4cac7660400799a80178300d6a84522f73719bd1bc7ae89af480a37da85c777235dba7' - 'd41e1f6a2c7d5a6a1f25619b3c836534a25dd955d3ee6ce9580951a6e32d488da66c0d2d8e1976d63d5a7539146126dbbfc946114a7ac9e7e40fc088f43ddae0') - -prepare () { - cd "${pkgname}-${pkgver}" - - local name - for name in 01-llvm7-support 02-fix-warnings 03-fix-segfault ; do - msg2 "Applying patch: ${name} ..." - patch -p1 < "${srcdir}/${name}.patch" - done - autoreconf -fvi - - cd lib/ieee - cp -v "${srcdir}"/*.vhdl "${srcdir}/1076.2-1996_downloads"/*.vhdl . - - sed -i -e '119,120 s/^--/ /' -e '89 s/^--/ /' \ - std_logic_1164.vhdl - - sed -i -e '367,382 s/^--/ /' -e '384,399 s/^--/ /' -e '165,168 s/^--/ /' \ - std_logic_1164-body.vhdl -} +optdepends=('ruby: for the scripts to download and install VHDL libraries') +source=("${url}/releases/download/r${pkgver}/${pkgname}-${pkgver%.0}.tar.gz") +sha512sums=('b27afd32b86bf6242fae0bb06051eab818936ec457891b43d0a397781851670e8d0e16e17eaa285cf1af0c32c7915b89458e39aa1bbbc305c280bbcb963bd647') build () { - cd "${pkgname}-${pkgver}" - ./configure --prefix=/usr --with-llvm - make + cd "${pkgname}-${pkgver%.0}" + LDFLAGS="${LDFLAGS} -pthread" \ + CFLAGS="${CFLAGS} -pthread" \ + CXXFLAGS="${CXXFLAGS} -pthread" \ + ./configure \ + --prefix=/usr \ + --with-llvm \ + --with-ncurses \ + --enable-vhpi \ + --enable-fst-pthread + make && make bootstrap } # The source distribution is missing VHDL source files which are # needed to run the test suite. # # check () { -# cd "${pkgname}-${pkgver}" +# cd "${pkgname}-${pkgver%.0}" # make check # } package () { - cd "${pkgname}-${pkgver}" + cd "${pkgname}-${pkgver%.0}" make DESTDIR="${pkgdir}" install - install -m 644 -D src/vhpi/vhpi_user.h "${pkgdir}/usr/include/vhpi_user.h" + install -Dm755 -t "${pkgdir}/usr/share/doc/${pkgname}" README.md + install -Dm755 -t "${pkgdir}/usr/share/doc/${pkgname}/tools" tools/*.rb } |