summaryrefslogtreecommitdiff
path: root/dev-libs/libf2c
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /dev-libs/libf2c
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.xz
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'dev-libs/libf2c')
-rw-r--r--dev-libs/libf2c/Manifest1
-rw-r--r--dev-libs/libf2c/files/20051004-add-ofiles-dep.patch14
-rw-r--r--dev-libs/libf2c/files/20090407-link-shared-libf2c-correctly.patch11
-rw-r--r--dev-libs/libf2c/files/libf2c-20110801-64bit-long.patch57
-rw-r--r--dev-libs/libf2c/files/libf2c-20110801-format-security.patch11
-rw-r--r--dev-libs/libf2c/files/libf2c-20110801-main.patch40
-rw-r--r--dev-libs/libf2c/libf2c-20110801-r4.ebuild58
-rw-r--r--dev-libs/libf2c/metadata.xml8
8 files changed, 200 insertions, 0 deletions
diff --git a/dev-libs/libf2c/Manifest b/dev-libs/libf2c/Manifest
new file mode 100644
index 00000000000..a9c14b85c08
--- /dev/null
+++ b/dev-libs/libf2c/Manifest
@@ -0,0 +1 @@
+DIST libf2c-20110801.zip 128845 SHA256 f13c01421e9668dc86c78159d87c2f802dd1f8e62037834285c7ab77200d97d5 SHA512 7a7b7b02ca2b11456aa0deba5094aebc1e9f7070d1742ad76450ec79de7eed967fbd7446524b66c52295ed911471d2dc396d171569b5d37079bdca8220fd2fb6 WHIRLPOOL 7bc8fa6c016dbb860863b39939f27f99156de017a2847764698bc0b5bbf21ff183e783991d6c5200ddba1b636e9a8bb93d560c00344db94b4e9a7b254abdafde
diff --git a/dev-libs/libf2c/files/20051004-add-ofiles-dep.patch b/dev-libs/libf2c/files/20051004-add-ofiles-dep.patch
new file mode 100644
index 00000000000..509726820ae
--- /dev/null
+++ b/dev-libs/libf2c/files/20051004-add-ofiles-dep.patch
@@ -0,0 +1,14 @@
+diff -urN libf2c.orig/makefile.u libf2c/makefile.u
+--- libf2c.orig/makefile.u 2006-05-13 15:41:29.000000000 -0700
++++ libf2c/makefile.u 2006-05-13 15:42:04.000000000 -0700
+@@ -69,7 +69,9 @@
+ OFILES = $(MISC) $(POW) $(CX) $(DCX) $(REAL) $(DBL) $(INT) \
+ $(HALF) $(CMP) $(EFL) $(CHAR) $(I77) $(TIME)
+
+-all: f2c.h signal1.h sysdep1.h libf2c.a
++all: libf2c.a
++
++$(OFILES): f2c.h signal1.h sysdep1.h
+
+ libf2c.a: $(OFILES)
+ ar r libf2c.a $?
diff --git a/dev-libs/libf2c/files/20090407-link-shared-libf2c-correctly.patch b/dev-libs/libf2c/files/20090407-link-shared-libf2c-correctly.patch
new file mode 100644
index 00000000000..d35e60bed0f
--- /dev/null
+++ b/dev-libs/libf2c/files/20090407-link-shared-libf2c-correctly.patch
@@ -0,0 +1,11 @@
+--- makefile.u.orig 2008-07-07 23:27:41.000000000 -0700
++++ makefile.u 2008-07-07 23:28:39.000000000 -0700
+@@ -82,7 +82,7 @@
+ ## of "cc -shared".
+
+ libf2c.so: $(OFILES)
+- $(CC) -shared -o libf2c.so $(OFILES)
++ $(CC) -shared $(LDFLAGS) -Wl,-soname,libf2c.so.2 $(OFILES) -o libf2c.so.2 -lm
+
+ ### If your system lacks ranlib, you don't need it; see README.
+
diff --git a/dev-libs/libf2c/files/libf2c-20110801-64bit-long.patch b/dev-libs/libf2c/files/libf2c-20110801-64bit-long.patch
new file mode 100644
index 00000000000..85687c5a420
--- /dev/null
+++ b/dev-libs/libf2c/files/libf2c-20110801-64bit-long.patch
@@ -0,0 +1,57 @@
+--- libf2c2-20090411.orig/f2c.h0
++++ libf2c2-20090411/f2c.h0
+@@ -7,21 +7,35 @@
+ #ifndef F2C_INCLUDE
+ #define F2C_INCLUDE
+
++#if defined(__alpha__) || defined(__sparc64__) || defined(__x86_64__) || defined(__ia64__)
++typedef int integer;
++typedef unsigned int uinteger;
++#else
+ typedef long int integer;
+ typedef unsigned long int uinteger;
++#endif
+ typedef char *address;
+ typedef short int shortint;
+ typedef float real;
+ typedef double doublereal;
+ typedef struct { real r, i; } complex;
+ typedef struct { doublereal r, i; } doublecomplex;
++#if defined(__alpha__) || defined(__sparc64__) || defined(__x86_64__) || defined(__ia64__)
++typedef int logical;
++#else
+ typedef long int logical;
++#endif
+ typedef short int shortlogical;
+ typedef char logical1;
+ typedef char integer1;
+ #ifdef INTEGER_STAR_8 /* Adjust for integer*8. */
+-typedef long long longint; /* system-dependent */
+-typedef unsigned long long ulongint; /* system-dependent */
++#if defined(__alpha__) || defined(__sparc64__) || defined(__x86_64__) || defined(__ia64__)
++typedef long longint; /* system-dependent */
++typedef unsigned long ulongint; /* system-dependent */
++#else
++typedef long long longint; /* system-dependent - oh yeah*/
++typedef unsigned long long ulongint; /* system-dependent - oh yeah*/
++#endif
+ #define qbit_clear(a,b) ((a) & ~((ulongint)1 << (b)))
+ #define qbit_set(a,b) ((a) | ((ulongint)1 << (b)))
+ #endif
+@@ -42,10 +56,16 @@
+ typedef short ftnlen;
+ typedef short ftnint;
+ #else
++#if defined(__alpha__) || defined(__sparc64__) || defined(__x86_64__) || defined(__ia64__)
++typedef int flag;
++typedef int ftnlen;
++typedef int ftnint;
++#else
+ typedef long int flag;
+ typedef long int ftnlen;
+ typedef long int ftnint;
+ #endif
++#endif
+
+ /*external read, write*/
+ typedef struct
diff --git a/dev-libs/libf2c/files/libf2c-20110801-format-security.patch b/dev-libs/libf2c/files/libf2c-20110801-format-security.patch
new file mode 100644
index 00000000000..669da2d694b
--- /dev/null
+++ b/dev-libs/libf2c/files/libf2c-20110801-format-security.patch
@@ -0,0 +1,11 @@
+--- arithchk.c
++++ arithchk.c
+@@ -122,7 +122,7 @@
+ long Cray1;
+
+ /* Cray1 = 4617762693716115456 -- without overflow on non-Crays */
+- Cray1 = printf(emptyfmt) < 0 ? 0 : 4617762;
++ Cray1 = fputs(emptyfmt, stdout) < 0 ? 0 : 4617762;
+ if (printf(emptyfmt, Cray1) >= 0)
+ Cray1 = 1000000*Cray1 + 693716;
+ if (printf(emptyfmt, Cray1) >= 0)
diff --git a/dev-libs/libf2c/files/libf2c-20110801-main.patch b/dev-libs/libf2c/files/libf2c-20110801-main.patch
new file mode 100644
index 00000000000..36d61c5c5a4
--- /dev/null
+++ b/dev-libs/libf2c/files/libf2c-20110801-main.patch
@@ -0,0 +1,40 @@
+Add weak alias for MAIN__
+
+https://bugs.gentoo.org/show_bug.cgi?id=421975
+https://bugs.gentoo.org/show_bug.cgi?id=433782
+https://groups.google.com/forum/#!msg/comp.os.linux.development.apps/41siJKfcJ78/iIcRfZ4y9G8J
+
+Patch written by Chris Reffett <creffett@gentoo.org>
+and Kacper Kowalik <xarthisius@gentoo.org>
+--- a/makefile.u
++++ b/makefile.u
+@@ -27,7 +27,7 @@
+ ## If your system does not have the x86_64-pc-linux-gnu-ld command, comment out
+ ## or remove both the x86_64-pc-linux-gnu-ld and mv lines above.
+
+-MISC = f77vers.o i77vers.o main.o s_rnge.o abort_.o exit_.o getarg_.o iargc_.o\
++MISC = f77vers.o i77vers.o main.o main_foo.o s_rnge.o abort_.o exit_.o getarg_.o iargc_.o\
+ getenv_.o signal_.o s_stop.o s_paus.o system_.o cabs.o ctype.o\
+ derf_.o derfc_.o erf_.o erfc_.o sig_die.o uninit.o
+ POW = pow_ci.o pow_dd.o pow_di.o pow_hh.o pow_ii.o pow_ri.o pow_zi.o pow_zz.o
+@@ -206,7 +206,7 @@
+ i77vers.c i_abs.c i_dim.c i_dnnt.c i_indx.c i_len.c i_mod.c \
+ i_nint.c i_sign.c iargc_.c iio.c ilnw.c inquire.c l_ge.c l_gt.c \
+ l_le.c l_lt.c lbitbits.c lbitshft.c libf2c.lbc libf2c.sy lio.h \
+- lread.c lwrite.c main.c makefile.sy makefile.u makefile.vc \
++ lread.c lwrite.c main.c main_foo.c makefile.sy makefile.u makefile.vc \
+ makefile.wat math.hvc mkfile.plan9 open.c pow_ci.c pow_dd.c \
+ pow_di.c pow_hh.c pow_ii.c pow_qq.c pow_ri.c pow_zi.c pow_zz.c \
+ qbitbits.c qbitshft.c r_abs.c r_acos.c r_asin.c r_atan.c r_atn2.c \
+--- /dev/null
++++ b/main_foo.c
+@@ -0,0 +1,9 @@
++#include <stdio.h>
++#include <stdlib.h>
++
++void missing_MAIN__ (void)
++{
++ fprintf(stderr, "The Fortran main program is missing.\n");
++ abort();
++}
++void MAIN__ (void) __attribute__ ((weak, alias("missing_MAIN__")));
diff --git a/dev-libs/libf2c/libf2c-20110801-r4.ebuild b/dev-libs/libf2c/libf2c-20110801-r4.ebuild
new file mode 100644
index 00000000000..48f67182e7d
--- /dev/null
+++ b/dev-libs/libf2c/libf2c-20110801-r4.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils multilib toolchain-funcs
+
+DESCRIPTION="Library that converts FORTRAN to C source"
+HOMEPAGE="http://www.netlib.org/f2c/"
+SRC_URI="${HOMEPAGE}/${PN}.zip -> ${P}.zip"
+
+LICENSE="HPND"
+SLOT="0"
+KEYWORDS="amd64 ppc ppc64 x86 ~x86-fbsd ~amd64-linux ~x86-linux"
+IUSE="static-libs"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ app-arch/unzip"
+
+S="${WORKDIR}"
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}"/20051004-add-ofiles-dep.patch \
+ "${FILESDIR}"/20090407-link-shared-libf2c-correctly.patch \
+ "${FILESDIR}"/${P}-main.patch\
+ "${FILESDIR}"/${P}-64bit-long.patch \
+ "${FILESDIR}"/${P}-format-security.patch
+ sed -i -e "s/ld /$(tc-getLD) /" makefile.u || die
+}
+
+src_compile() {
+ emake \
+ -f makefile.u \
+ libf2c.so \
+ CFLAGS="${CFLAGS} -fPIC" \
+ CC="$(tc-getCC)"
+
+ # Clean up files so we can recompile without PIC for the static lib
+ if use static-libs; then
+ rm *.o || die "clean failed"
+ emake \
+ -f makefile.u \
+ all \
+ CFLAGS="${CFLAGS}" \
+ CC="$(tc-getCC)"
+ fi
+}
+
+src_install () {
+ dolib libf2c.so.2
+ dosym libf2c.so.2 /usr/$(get_libdir)/libf2c.so
+ use static-libs && dolib.a libf2c.a
+ doheader f2c.h
+ dodoc README Notice
+}
diff --git a/dev-libs/libf2c/metadata.xml b/dev-libs/libf2c/metadata.xml
new file mode 100644
index 00000000000..30770fe1c08
--- /dev/null
+++ b/dev-libs/libf2c/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci</herd>
+ <longdescription lang="en">
+ A library to conver FORTRAN 77 to C/C++ source code.
+</longdescription>
+</pkgmetadata>