unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
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


             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

  List information: https://guix.gnu.org/

* 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 public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).