From: ng0 <contact.ng0@cryptolab.net>
To: guix-devel@gnu.org
Subject: No such file: LLVMgold.so while packaging ponyc
Date: Fri, 17 Feb 2017 14:44:13 +0000 [thread overview]
Message-ID: <20170217144413.steyscurxqm5zmms@wasp> (raw)
[-- Attachment #1: Type: text/plain, Size: 1127 bytes --]
A while ago I started packaging ponylang's compiler "ponyc", which can
be found here (https://pagure.io/guix-dev/branch/package/langs/ponyc).
For your convinience this is also attached as a .patch file.
It seems as if it requires the LLVMgold.so file, at least [0]
and my own errors are telling me this.
We do not provide the LLVMgold.so file. This could be similar to the
package definition rust has.
Linking libponyc
ar: /gnu/store/cdi08kw7r6r684w8mk0xq0dkgpjhfpmd-gcc-4.9.4-lib/lib/LLVMgold.so: cannot open shared object file: No such file or directory
... (lots of similar errors)
ar: build/release/obj/libgtest/gtest_main.o: plugin needed to handle lto object
ar: build/release/obj/libgtest/gtest-all.o: plugin needed to handle lto object
main.c
Linking ponyc
collect2: fatal error: cannot find 'ld'
compilation terminated.
make: *** [Makefile:591: build/release/ponyc] Error 1
phase `build' failed after 55.4 seconds
I'm open for new ideas.
0: https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/compilers/ponyc/default.nix
--
ng0 -- https://www.inventati.org/patternsinthechaos/
[-- Attachment #2: 0001-gnu-Add-ponyc.patch --]
[-- Type: text/plain, Size: 7420 bytes --]
From 0aebfd7dd33d429a7a5bb68cff1eeee9e95f3d0d Mon Sep 17 00:00:00 2001
From: ng0 <ng0@libertad.pw>
Date: Fri, 20 Jan 2017 13:16:10 +0000
Subject: [PATCH] gnu: Add ponyc.
* gnu/packages/pony.scm: New file.
* gnu/packages/patches/ponyc-disable-tests.patch: New file.
* gnu/local.mk
---
gnu/local.mk | 2 +
gnu/packages/patches/ponyc-disable-tests.patch | 19 ++++
gnu/packages/pony.scm | 117 +++++++++++++++++++++++++
3 files changed, 138 insertions(+)
create mode 100644 gnu/packages/patches/ponyc-disable-tests.patch
create mode 100644 gnu/packages/pony.scm
diff --git a/gnu/local.mk b/gnu/local.mk
index 060de2535..7713fd2e6 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -303,6 +303,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/pkg-config.scm \
%D%/packages/plotutils.scm \
%D%/packages/polkit.scm \
+ %D%/packages/pony.scm \
%D%/packages/popt.scm \
%D%/packages/pth.scm \
%D%/packages/pulseaudio.scm \
@@ -837,6 +838,7 @@ dist_patch_DATA = \
%D%/packages/patches/plotutils-libpng-jmpbuf.patch \
%D%/packages/patches/polkit-drop-test.patch \
%D%/packages/patches/portaudio-audacity-compat.patch \
+ %D%/packages/patches/ponyc-disable-tests.patch \
%D%/packages/patches/portmidi-modular-build.patch \
%D%/packages/patches/procmail-ambiguous-getline-debian.patch \
%D%/packages/patches/procmail-CVE-2014-3618.patch \
diff --git a/gnu/packages/patches/ponyc-disable-tests.patch b/gnu/packages/patches/ponyc-disable-tests.patch
new file mode 100644
index 000000000..38740cf96
--- /dev/null
+++ b/gnu/packages/patches/ponyc-disable-tests.patch
@@ -0,0 +1,19 @@
+diff -Naur a/packages/net/_test.pony b/packages/net/_test.pony
+--- a/packages/net/_test.pony 1970-01-01 01:00:01.000000000 +0100
++++ b/packages/net/_test.pony 2016-12-01 22:25:59.102433053 +0100
+@@ -5,14 +5,7 @@
+ new make() => None
+
+ fun tag tests(test: PonyTest) =>
+- test(_TestBroadcast)
+- test(_TestTCPWritev)
+- test(_TestTCPExpect)
+- test(_TestTCPMute)
+- test(_TestTCPUnmute)
+- ifdef not windows then
+- test(_TestTCPThrottle)
+- end
++ None
+
+ class _TestPing is UDPNotify
+ let _h: TestHelper
diff --git a/gnu/packages/pony.scm b/gnu/packages/pony.scm
new file mode 100644
index 000000000..025cd6a7a
--- /dev/null
+++ b/gnu/packages/pony.scm
@@ -0,0 +1,117 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2017 ng0 <contact.ng0@cryptolab.net>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages pony)
+ #:use-module (ice-9 match)
+ #:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-26)
+ #:use-module (guix build-system gnu)
+ #:use-module (guix download)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix packages)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages gcc)
+ #:use-module (gnu packages pcre)
+ #:use-module (gnu packages llvm)
+ #:use-module (gnu packages bash)
+ #:use-module (gnu packages ncurses)
+ #:use-module (gnu packages tls))
+
+(define-public ponyc
+ (package
+ (name "ponyc")
+ (version "0.10.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/ponylang/ponyc/archive/"
+ version ".tar.gz"))
+ (patches (search-patches "ponyc-disable-tests.patch"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0j87f7jk7ly96wm67smf4hia2cb4ivv4vrlp2297h2f3smifhjk9"))))
+ ;; Only x86 and arm are supported with 32 and 64 bit variants.
+ (supported-systems
+ (fold delete %supported-systems
+ '("mips64el-linux")))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:test-target "test-ci"
+ #:strip-binaries? #f
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (add-before 'build 'fix-tests
+ (lambda _
+ (substitute* "packages/process/_test.pony"
+ (("/bin/") "")) ; cat,date,echo
+ (substitute* "Makefile"
+ (("llvm-ar-3.8") "llvm-ar"))
+ (substitute* "src/libponyc/pkg/package.c"
+ (("/usr/local/lib") "")
+ (("/opt/local/lib") ""))
+ (substitute* '("packages/crypto/hash_fn.pony"
+ "packages/crypto/digest.pony"
+ "packages/net/ssl/_ssl_init.pony")
+ (("/usr/local/opt/libressl/lib")
+ (string-append (assoc-ref %build-inputs "libressl")
+ "/lib")))
+ (substitute* "Makefile"
+ (("PONYPATH=.") "PONYPATH=.:$(PONYPATH)"))
+ (setenv "LLVM_CONFIG"
+ (string-append (assoc-ref %build-inputs "llvm")
+ "/bin/llvm-config"))
+ (setenv "LTO_PLUGIN"
+ (string-append (assoc-ref %build-inputs "gcc:lib")
+ "/lib/LLVMgold.so"))
+ (setenv "CC" "gcc")))
+ (replace 'build
+ (lambda _
+ (zero? (system* "make" "config=release"))))
+ (replace 'install
+ (lambda _
+ (zero? (system* "make" "config=release"
+ (string-append "prefix="
+ (assoc-ref %outputs "out"))
+ "install"))))
+ (add-before 'check 'set-pony-path
+ (lambda _
+ (setenv "PONYPATH"
+ (string-append (assoc-ref %outputs "out")
+ "/lib" ":"
+ (assoc-ref %build-inputs "pcre2")
+ "/lib" ":"
+ (assoc-ref %build-inputs "libressl")
+ "/lib" ":"
+ (which "ld"))))))))
+ (inputs
+ `(("pcre2" ,pcre2)))
+ (native-inputs
+ `(("llvm" ,llvm)
+ ("gcc:lib" ,(canonical-package gcc) "lib")
+ ("gcc" ,(canonical-package gcc))
+ ("ncurses" ,ncurses)
+ ("libressl" ,libressl)
+ ("bash" ,bash)))
+ (synopsis "Actor model, capabilities-secure, high performance programming language")
+ (description
+ "What.")
+ (home-page "http://www.ponylang.org/")
+ (license license:bsd-2)))
--
2.11.1
next reply other threads:[~2017-02-17 14:42 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-17 14:44 ng0 [this message]
2017-02-19 11:56 ` No such file: LLVMgold.so while packaging ponyc Ricardo Wurmus
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170217144413.steyscurxqm5zmms@wasp \
--to=contact.ng0@cryptolab.net \
--cc=guix-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.