Skip to content
Commits on Source (3)
/*===========================================================================
*
* 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_ */
Description: Enable ppc64 and ppc64el
Handle those architectures in the configuration scripts.
Author: Frédéric Bonnard <frediz@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'";
}
Description: Fallback on generic atomic32.h
Author: Frédéric Bonnard <frediz@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)")
fix_jni.patch
do_not_exclude_certain_architectures_explicitly.patch
fallback-on-generic-atomic32.patch
enable-ppc64el.patch
......@@ -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
......