[med-svn] [Git][med-team/ngs-sdk][master] 3 commits: Add support for other architectures based on gcc atomic built-ins (Closes: #813559)
Michael R. Crusoe
gitlab at salsa.debian.org
Sat Oct 12 07:59:28 BST 2019
Michael R. Crusoe pushed to branch master at Debian Med / ngs-sdk
Commits:
059bf68f by Frédéric Bonnard at 2019-10-11T13:46:24Z
Add support for other architectures based on gcc atomic built-ins (Closes: #813559)
This is based on the existing win/atomic32.h modified with gcc atomic built-ins.
Each unknown architecture in the configuration scripts still needs to be
added.
- - - - -
2253b8d4 by Frédéric Bonnard at 2019-10-11T13:46:32Z
Enable ppc64/ppc64el in configuration scripts
- - - - -
bc239fe9 by Michael R. Crusoe at 2019-10-12T06:59:22Z
Merge branch 'enable-ppc64-ppc64el-and-possibly-others' into 'master'
Enable ppc64 ppc64el and possibly others
See merge request med-team/ngs-sdk!1
- - - - -
5 changed files:
- + debian/atomic32.h
- + debian/patches/enable-ppc64el.patch
- + debian/patches/fallback-on-generic-atomic32.patch
- debian/patches/series
- debian/rules
Changes:
=====================================
debian/atomic32.h
=====================================
@@ -0,0 +1,77 @@
+/*===========================================================================
+*
+* PUBLIC DOMAIN NOTICE
+* National Center for Biotechnology Information
+*
+* This software/database is a "United States Government Work" under the
+* terms of the United States Copyright Act. It was written as part of
+* the author's official duties as a United States Government employee and
+* thus cannot be copyrighted. This software/database is freely available
+* to the public for use. The National Library of Medicine and the U.S.
+* Government have not placed any restriction on its use or reproduction.
+*
+* Although all reasonable efforts have been taken to ensure the accuracy
+* and reliability of the software and data, the NLM and the U.S.
+* Government do not and cannot warrant the performance or results that
+* may be obtained by using this software or data. The NLM and the U.S.
+* Government disclaim all warranties, express or implied, including
+* warranties of performance, merchantability or fitness for any particular
+* purpose.
+*
+* Please cite the author in any work or product based on this material.
+*
+* ===========================================================================
+*
+*/
+
+#ifndef _h_ngs_engine_atomic32_
+#define _h_ngs_engine_atomic32_
+
+typedef struct atomic32_t atomic32_t;
+struct atomic32_t
+{
+ volatile int counter;
+};
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* int atomic32_read ( const atomic32_t *v ); */
+#define atomic32_read( v ) \
+ ( ( v ) -> counter )
+
+/* void atomic32_set ( atomic32_t *v, int i ); */
+#define atomic32_set( v, i ) \
+ ( ( void ) ( ( ( v ) -> counter ) = ( i ) ) )
+
+/* add to v -> counter and return the prior value */
+/* int atomic32_read_and_add ( atomic32_t *v, int i ) */
+#define atomic32_read_and_add( v, i ) \
+ __sync_fetch_and_add ( ( volatile unsigned int * ) & ( v ) -> counter, ( i ) )
+
+/* void atomic32_dec ( atomic32_t *v ) */
+#define atomic32_dec( v ) \
+ __sync_sub_and_fetch ( ( volatile unsigned int * ) & ( v ) -> counter, 1 )
+
+/* int atomic32_test_and_set ( atomic32_t *v, int s, int t ) */
+#define atomic32_test_and_set( v, s, t ) \
+ __sync_val_compare_and_swap ( ( volatile unsigned int * ) & ( v ) -> counter, ( t ), ( s ) )
+
+static __inline int atomic32_read_and_add_gt ( atomic32_t *v, int i, int t )
+{
+ int val, val_intern;
+ for ( val = atomic32_read ( v ); val > t; val = val_intern )
+ {
+ val_intern = atomic32_test_and_set ( v, val + i, val );
+ if ( val_intern == val )
+ break;
+ }
+ return val;
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _h_ngs_engine_atomic32_ */
=====================================
debian/patches/enable-ppc64el.patch
=====================================
@@ -0,0 +1,73 @@
+Description: Enable ppc64 and ppc64el
+Handle those architectures in the configuration scripts.
+Author: Frédéric Bonnard <frediz at debian.org>
+--- a/ngs-bam/setup/os-arch.prl
++++ b/ngs-bam/setup/os-arch.prl
+@@ -55,6 +55,9 @@
+ } elsif ($MARCH =~ /sun4v/) {
+ $HOST_ARCH = 'sparc64';
+ @ARCHITECTURES = qw(sparc64 sparc32);
++ } elsif ($MARCH =~ /ppc64/) {
++ $HOST_ARCH = $MARCH;
++ @ARCHITECTURES = qw(ppc64 ppc64le);
+ } else {
+ $HOST_ARCH = $MARCH;
+ }
+--- a/ngs-java/setup/os-arch.prl
++++ b/ngs-java/setup/os-arch.prl
+@@ -55,6 +55,9 @@
+ } elsif ($MARCH =~ /sun4v/) {
+ $HOST_ARCH = 'sparc64';
+ @ARCHITECTURES = qw(sparc64 sparc32);
++ } elsif ($MARCH =~ /ppc64/) {
++ $HOST_ARCH = $MARCH;
++ @ARCHITECTURES = qw(ppc64 ppc64le);
+ } else {
+ $HOST_ARCH = $MARCH;
+ }
+--- a/ngs-python/setup/os-arch.prl
++++ b/ngs-python/setup/os-arch.prl
+@@ -55,6 +55,9 @@
+ } elsif ($MARCH =~ /sun4v/) {
+ $HOST_ARCH = 'sparc64';
+ @ARCHITECTURES = qw(sparc64 sparc32);
++ } elsif ($MARCH =~ /ppc64/) {
++ $HOST_ARCH = $MARCH;
++ @ARCHITECTURES = qw(ppc64 ppc64le);
+ } else {
+ $HOST_ARCH = $MARCH;
+ }
+--- a/ngs-sdk/setup/konfigure.perl
++++ b/ngs-sdk/setup/konfigure.perl
+@@ -313,6 +313,8 @@
+ $BITS = '32_64';
+ } elsif ($MARCH =~ /i?86/i) {
+ $BITS = 32;
++} elsif ($MARCH =~ /ppc64/i) {
++ $BITS = 64;
+ } else {
+ die "unrecognized Architecture '$ARCH'";
+ }
+--- a/ngs-sdk/setup/os-arch.prl
++++ b/ngs-sdk/setup/os-arch.prl
+@@ -55,6 +55,9 @@
+ } elsif ($MARCH =~ /sun4v/) {
+ $HOST_ARCH = 'sparc64';
+ @ARCHITECTURES = qw(sparc64 sparc32);
++ } elsif ($MARCH =~ /ppc64/) {
++ $HOST_ARCH = $MARCH;
++ @ARCHITECTURES = qw(ppc64 ppc64le);
+ } else {
+ $HOST_ARCH = $MARCH;
+ }
+--- a/ngs-java/setup/konfigure.perl
++++ b/ngs-java/setup/konfigure.perl
+@@ -313,6 +313,8 @@
+ $BITS = '32_64';
+ } elsif ($MARCH =~ /i?86/i) {
+ $BITS = 32;
++} elsif ($MARCH =~ /ppc64/i) {
++ $BITS = 64;
+ } else {
+ die "unrecognized Architecture '$ARCH'";
+ }
=====================================
debian/patches/fallback-on-generic-atomic32.patch
=====================================
@@ -0,0 +1,21 @@
+Description: Fallback on generic atomic32.h
+Author: Frédéric Bonnard <frediz at debian.org>
+Bug-Debian: https://bugs.debian.org/813559
+--- a/ngs-sdk/setup/konfigure.perl
++++ b/ngs-sdk/setup/konfigure.perl
+@@ -910,8 +910,13 @@
+ }
+ if ($PIC) {
+ if (PACKAGE_NAMW() eq 'NGS') {
+- L($F, "INCDIRS = \$(SRCINC) $INC\$(TOP) "
+- . "$INC\$(TOP)/ngs/\$(OSINC)/\$(ARCH)")
++ if ( -d "ngs/unix/$MARCH" ) {
++ L($F, "INCDIRS = \$(SRCINC) $INC\$(TOP) "
++ . "$INC\$(TOP)/ngs/\$(OSINC)/\$(ARCH)")
++ } else {
++ L($F, "INCDIRS = \$(SRCINC) $INC\$(TOP) "
++ . "$INC\$(TOP)/ngs/\$(OSINC)/generic")
++ }
+ } elsif (PACKAGE_NAMW() eq 'NGS_BAM') {
+ L($F, "INCDIRS = \$(SRCINC) $INC\$(TOP) "
+ . "$INC\$(NGS_INCDIR)/ngs/\$(OSINC)/\$(ARCH)")
=====================================
debian/patches/series
=====================================
@@ -1,2 +1,4 @@
fix_jni.patch
do_not_exclude_certain_architectures_explicitly.patch
+fallback-on-generic-atomic32.patch
+enable-ppc64el.patch
=====================================
debian/rules
=====================================
@@ -28,11 +28,13 @@ override_dh_auto_clean:
rm -f ngs-bam/Makefile.config.install.linux.x86_64.prl
rm -f ngs-bam/Makefile.config.linux.x86_64
rm -f ngs-bam/reconfigure
+ rm -rf ngs-sdk/ngs/unix/generic
rm -rf $(DEB_SOURCE)/$(MULTIARCH)
rm -rf ngs-python/build
override_dh_auto_configure:
+ mkdir ngs-sdk/ngs/unix/generic && cp debian/atomic32.h ngs-sdk/ngs/unix/generic/
# # that's no standard configure script lacking support of default options \
./configure --build=$(MULTIARCH) --prefix=/usr -- --source=1.7
View it on GitLab: https://salsa.debian.org/med-team/ngs-sdk/compare/7aacb2e730139b19dcfcd794ed8d058a3e771c32...bc239fe9c79c6e862aa0cc4e43bb0d9b9a8d6748
--
View it on GitLab: https://salsa.debian.org/med-team/ngs-sdk/compare/7aacb2e730139b19dcfcd794ed8d058a3e771c32...bc239fe9c79c6e862aa0cc4e43bb0d9b9a8d6748
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20191012/8018d964/attachment-0001.html>
More information about the debian-med-commit
mailing list