[med-svn] [Git][med-team/phyml][master] 5 commits: Adjust further filter-sse3-intrinsics.patch
Étienne Mollier (@emollier)
gitlab at salsa.debian.org
Thu Nov 18 23:57:02 GMT 2021
Étienne Mollier pushed to branch master at Debian Med / phyml
Commits:
4a0a9b8c by Étienne Mollier at 2021-11-18T23:08:32+01:00
Adjust further filter-sse3-intrinsics.patch
This was initially to fix a failure to build from source on i386,
but it turned out to reveal more cases which may branch in a buggy
manner through SSE code. Also, this handles the case of SSE'd
variables otherwise undefined if neither SSE nor AVX are available.
- - - - -
935a46ea by Étienne Mollier at 2021-11-19T00:10:32+01:00
d/copyright: bump project to GPL-3 and document mxml.h
- - - - -
4b5e67ed by Étienne Mollier at 2021-11-19T00:18:20+01:00
d/copyright: update years for package maintenance
- - - - -
542c5b86 by Étienne Mollier at 2021-11-19T00:19:19+01:00
d/copyright: fix typo in comment
Gbp-Dch: ignore
- - - - -
31cca59a by Étienne Mollier at 2021-11-19T00:22:44+01:00
ready to upload to unstable
- - - - -
3 changed files:
- debian/changelog
- debian/copyright
- debian/patches/filter-sse3-intrinsics.patch
Changes:
=====================================
debian/changelog
=====================================
@@ -1,20 +1,22 @@
-phyml (3:3.3.20211021-1) UNRELEASED; urgency=medium
+phyml (3:3.3.20211021-1) unstable; urgency=medium
* New upstream version.
* Refresh most patches.
* Add apply-cflags.patch: ensure standard Debian CFLAGS are propagated
throughout the build process.
- * Add filter-sse3-intrinsics.patch: fixes FTBFS when built with -msse, as
- the codebase also now includes SSE3 instructions; however SSE acceleration
- is thus now unavailable on amd64.
+ * Add filter-sse3-intrinsics.patch: fixes FTBFS when built with -msse but
+ without -msse3, as the codebase also now includes SSE3 instructions;
+ however this means that SSE acceleration is thus now disabled on amd64.
* Add apply-ldflags.patch: ensure standard Debian LDFLAGS are propagated
throughout the build process for proper hardening.
* d/rules: autoconfigure with --enable-phyml-mpi, replacing --enable-mpi.
* d/rules: fix permissions of example files nucleic and proteic.
* d/{links,phyml.1}: also provide phyml-mpi manual page.
* d/control: add myself to Uploaders.
+ * d/copyright: bump project to GPL-3 and document the file src/mxml.h
+ * d/copyright: update copyright entry of package maintenance
- -- Étienne Mollier <emollier at debian.org> Thu, 18 Nov 2021 00:26:09 +0100
+ -- Étienne Mollier <emollier at debian.org> Fri, 19 Nov 2021 00:22:37 +0100
phyml (3:3.3.20200621-3) unstable; urgency=medium
=====================================
debian/copyright
=====================================
@@ -9,13 +9,66 @@ Copyright: Stephane Guindon <guindon at stat.auckland.ac.nz>
Jean-Francois Dufayard <jeanfrancois.dufayard at gmail.com>
Wim Hodrijk <wim at santafe.edu>
Franck Lethiec <lethiec at lirmm.fr>
-License: GPL-2+
+License: GPL-3
+ This program 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, version 3 of the License.
+ .
+ This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
+ .
+ On the Debian operating system, a copy of the GNU GPL version 3
+ can be found in ‘/usr/share/common-licenses/GPL-3’.
+
+Files: src/mxml.h
+Copyright: 2003-2011 Michael R Sweet
+Comment:
+ The header states to refer to COPYING file, but it is not the one of the
+ present package. One has to dig in the mxml repository history to find
+ the corresponding file, which turns out to correspond to the variation around
+ the LGPL-2 around 2011:
+ https://github.com/michaelrsweet/mxml/blob/release-2.7/COPYING
+ .
+ Earlier versions of the mxml were available under GPL-2 license, and
+ later versions of the mxml were available under Apache 2.0 license.
+ See the package libmxml-dev.
+License: Mini-XML
+ Mini-XML License
+ September 18, 2010
+ .
+ The Mini-XML library and included programs are provided under the
+ terms of the GNU Library General Public License version 2 (LGPL2)
+ with the following exceptions:
+ .
+ 1. Static linking of applications to the Mini-XML library
+ does not constitute a derivative work and does not require
+ the author to provide source code for the application, use
+ the shared Mini-XML libraries, or link their applications
+ against a user-supplied version of Mini-XML.
+ .
+ If you link the application to a modified version of
+ Mini-XML, then the changes to Mini-XML must be provided
+ under the terms of the LGPL2 in sections 1, 2, and 4.
+ .
+ 2. You do not have to provide a copy of the Mini-XML license
+ with programs that are linked to the Mini-XML library, nor
+ do you have to identify the Mini-XML license in your
+ program or documentation as required by section 6 of the
+ LGPL2.
+ .
+ On the Debian operating system, a copy of the GNU LGPL version 2
+ can be found in ‘/usr/share/common-licenses/LGPL-2’.
Files: debian/*
Copyright: 2009-2013 Charles Plessy <plessy at debian>
- 2013-2015 Andreas Tille <tille at debian.org>
-License: GPL-2+
-
+ 2013-2021 Andreas Tille <tille at debian.org>
+ 2016 Kevin Murray <spam at kdmurray.id.au>
+ 2021 Étienne Mollier <emollier at debian.org>
License: GPL-2+
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
=====================================
debian/patches/filter-sse3-intrinsics.patch
=====================================
@@ -77,3 +77,210 @@ This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
void SSE_Update_Eigen_Lr(t_edge *b, t_tree *tree)
{
+--- phyml.orig/src/utilities.h
++++ phyml/src/utilities.h
+@@ -38,7 +38,7 @@
+ #include <xmmintrin.h>
+ #include <pmmintrin.h>
+ #include <immintrin.h>
+-#elif (defined(__SSE__) || defined(__SSE2__) || defined(__SSE3__))
++#elif defined(__SSE3__)
+ #include <emmintrin.h>
+ #include <pmmintrin.h>
+ #endif
+@@ -116,7 +116,7 @@
+
+ #if (defined __AVX__ || defined __AVX2__)
+ #define BYTE_ALIGN 32
+-#elif (defined(__SSE__) || defined(__SSE2__) || defined __SSE3__)
++#elif defined __SSE3__
+ #define BYTE_ALIGN 16
+ #else
+ #define BYTE_ALIGN 1
+@@ -752,8 +752,10 @@
+
+ #if (defined(__AVX__) || defined(__AVX2__))
+ __m256d *_tPij1,*_tPij2,*_pmat1plk1,*_pmat2plk2,*_plk0,*_l_ev,*_r_ev,*_prod_left,*_prod_rght;
+-#elif (defined(__SSE__) || defined(__SSE2__) || defined(__SSE3__))
++#elif defined(__SSE3__)
+ __m128d *_tPij1,*_tPij2,*_pmat1plk1,*_pmat2plk2,*_plk0,*_l_ev,*_r_ev,*_prod_left,*_prod_rght;
++#else
++ long *_tPij1,*_tPij2,*_pmat1plk1,*_pmat2plk2,*_plk0,*_l_ev,*_r_ev,*_prod_left,*_prod_rght;
+ #endif
+
+ phydbl *p_lk_left_pi,*l_ev;
+@@ -2531,7 +2533,7 @@
+
+ #if (defined(__AVX__) || defined(__AVX2__))
+ #include "avx.h"
+-#elif (defined(__SSE__) || defined(__SSE2__) || defined(__SSE3__))
++#elif defined(__SSE3__)
+ #include "sse.h"
+ #endif
+
+--- phyml.orig/src/free.c
++++ phyml/src/free.c
+@@ -422,7 +422,7 @@
+ Free(tree->p_lk_left_pi);
+ Free(tree->l_ev);
+
+-#if (defined(__AVX__) || defined(__AVX2__) || defined(__SSE__) || defined(__SSE2__) || defined(__SSE3__))
++#if (defined(__AVX__) || defined(__AVX2__) || defined(__SSE3__))
+ Free(tree->_tPij1);
+ Free(tree->_tPij2);
+ Free(tree->_pmat1plk1);
+--- phyml.orig/src/make.c
++++ phyml/src/make.c
+@@ -22,7 +22,7 @@
+ const unsigned int ns = tree->mod->ns;
+ const unsigned int nsns = ns * ns;
+
+-#if (defined(__AVX__) || defined(__AVX2__) || defined(__SSE__) || defined(__SSE2__) || defined(__SSE3__))
++#if (defined(__AVX__) || defined(__AVX2__) || defined(__SSE3__))
+ const unsigned int sz = (int)BYTE_ALIGN / 8;
+ const unsigned int ncatg = tree->mod->ras->n_catg;
+ #endif
+@@ -69,7 +69,7 @@
+ tree->_prod_left = _aligned_malloc(ns / sz * sizeof(__m256d),BYTE_ALIGN);
+ tree->_prod_rght = _aligned_malloc(ns / sz * sizeof(__m256d),BYTE_ALIGN);
+ #endif
+-#elif (defined(__SSE__) || defined(__SSE2__) || defined(__SSE3__))
++#elif (defined(__SSE3__))
+ #ifndef WIN32
+ if(posix_memalign((void **)&tree->dot_prod,BYTE_ALIGN,(size_t)tree->n_pattern*tree->mod->ns*MAX(tree->mod->ras->n_catg,tree->mod->n_mixt_classes)*sizeof(phydbl))) Generic_Exit(__FILE__,__LINE__,__FUNCTION__);
+ if(posix_memalign((void **)&tree->expl,BYTE_ALIGN,(size_t)3*MAX(tree->mod->ras->n_catg,tree->mod->n_mixt_classes)*tree->mod->ns*sizeof(phydbl))) Generic_Exit(__FILE__,__LINE__,__FUNCTION__);
+@@ -99,7 +99,7 @@
+ tree->_prod_left = _aligned_malloc(ns / sz * sizeof(__m128d),BYTE_ALIGN);
+ tree->_prod_rght = _aligned_malloc(ns / sz * sizeof(__m128d),BYTE_ALIGN);
+ #endif
+-#elif (!(defined(__AVX__) || defined(__AVX2__) || defined(__SSE__) || defined(__SSE2__) || defined(__SSE3__)))
++#elif (!(defined(__AVX__) || defined(__AVX2__) || defined(__SSE3__)))
+ tree->dot_prod = (phydbl *)mCalloc(tree->n_pattern*tree->mod->ns*MAX(tree->mod->ras->n_catg,tree->mod->n_mixt_classes),sizeof(phydbl));
+ tree->expl = (phydbl *)mCalloc(3*MAX(tree->mod->ras->n_catg,tree->mod->n_mixt_classes)*tree->mod->ns,sizeof(phydbl));
+ tree->p_lk_left_pi = (phydbl *)mCalloc(ns,sizeof(phydbl));
+@@ -297,7 +297,7 @@
+
+ b->l_old->v = b->l->v;
+
+-#if (defined(__AVX__) || defined(__AVX2__) || defined(__SSE__) || defined(__SSE2__) || defined(__SSE3__))
++#if (defined(__AVX__) || defined(__AVX2__) || defined(__SSE3__))
+ #ifndef WIN32
+ if(posix_memalign((void *)&b->Pij_rr,BYTE_ALIGN,(size_t)tree->mod->ras->n_catg*tree->mod->ns*tree->mod->ns*sizeof(phydbl))) Generic_Exit(__FILE__,__LINE__,__FUNCTION__);
+ if(posix_memalign((void *)&b->tPij_rr,BYTE_ALIGN,(size_t)tree->mod->ras->n_catg*tree->mod->ns*tree->mod->ns*sizeof(phydbl))) Generic_Exit(__FILE__,__LINE__,__FUNCTION__);
+@@ -334,7 +334,7 @@
+ {
+ if((!b->left->tax) || (tree->mod->s_opt->greedy))
+ {
+-#if (defined(__AVX__) || defined(__AVX2__) || defined(__SSE__) || defined(__SSE2__) || defined(__SSE3__))
++#if (defined(__AVX__) || defined(__AVX2__) || defined(__SSE3__))
+ #ifndef WIN32
+ if(posix_memalign((void **)&b->p_lk_left,BYTE_ALIGN,(size_t)tree->data->crunch_len*MAX(tree->mod->ras->n_catg,tree->mod->n_mixt_classes)*tree->mod->ns*sizeof(phydbl))) Generic_Exit(__FILE__,__LINE__,__FUNCTION__);
+ #else
+@@ -349,7 +349,7 @@
+ {
+ b->p_lk_left = NULL;
+
+-#if (defined(__AVX__) || defined(__AVX2__) || defined(__SSE__) || defined(__SSE2__) || defined(__SSE3__))
++#if (defined(__AVX__) || defined(__AVX2__) || defined(__SSE3__))
+ #ifndef WIN32
+ if(posix_memalign((void **)&b->p_lk_tip_l,BYTE_ALIGN,(size_t)tree->data->crunch_len*tree->mod->ns*sizeof(phydbl))) Generic_Exit(__FILE__,__LINE__,__FUNCTION__);
+ #else
+@@ -370,7 +370,7 @@
+ {
+ b->sum_scale_left = (int *)mCalloc(tree->data->crunch_len*MAX(tree->mod->ras->n_catg,tree->mod->n_mixt_classes),sizeof(int));
+
+-#if (defined(__AVX__) || defined(__AVX2__) || defined(__SSE__) || defined(__SSE2__) || defined(__SSE3__))
++#if (defined(__AVX__) || defined(__AVX2__) || defined(__SSE3__))
+ #ifndef WIN32
+ if(posix_memalign((void **)&b->p_lk_left,BYTE_ALIGN,(size_t)tree->data->crunch_len*MAX(tree->mod->ras->n_catg,tree->mod->n_mixt_classes)*tree->mod->ns*sizeof(phydbl))) Generic_Exit(__FILE__,__LINE__,__FUNCTION__);
+ #else
+@@ -405,7 +405,7 @@
+ {
+ if((!b->rght->tax) || (tree->mod->s_opt->greedy))
+ {
+-#if (defined(__AVX__) || defined(__AVX2__) || defined(__SSE__) || defined(__SSE2__) || defined(__SSE3__))
++#if (defined(__AVX__) || defined(__AVX2__) || defined(__SSE3__))
+ #ifndef WIN32
+ if(posix_memalign((void **)&b->p_lk_rght,BYTE_ALIGN,(size_t)tree->data->crunch_len*MAX(tree->mod->ras->n_catg,tree->mod->n_mixt_classes)*tree->mod->ns*sizeof(phydbl))) Generic_Exit(__FILE__,__LINE__,__FUNCTION__);
+ #else
+@@ -418,7 +418,7 @@
+ }
+ else if(b->rght->tax)
+ {
+-#if (defined(__AVX__) || defined(__AVX2__) || defined(__SSE__) || defined(__SSE2__) || defined(__SSE3__))
++#if (defined(__AVX__) || defined(__AVX2__) || defined(__SSE3__))
+ #ifndef WIN32
+ if(posix_memalign((void **)&b->p_lk_tip_r,BYTE_ALIGN,(size_t)tree->data->crunch_len*tree->mod->ns*sizeof(phydbl))) Generic_Exit(__FILE__,__LINE__,__FUNCTION__);
+ #else
+@@ -439,7 +439,7 @@
+ if(b->num >= 2*tree->n_otu-3)
+ {
+ b->sum_scale_rght = (int *)mCalloc(tree->data->crunch_len*MAX(tree->mod->ras->n_catg,tree->mod->n_mixt_classes),sizeof(int));
+-#if (defined(__AVX__) || defined(__AVX2__) || defined(__SSE__) || defined(__SSE2__) || defined(__SSE3__))
++#if (defined(__AVX__) || defined(__AVX2__) || defined(__SSE3__))
+ #ifndef WIN32
+ if(posix_memalign((void **)&b->p_lk_rght,BYTE_ALIGN,(size_t)tree->data->crunch_len*MAX(tree->mod->ras->n_catg,tree->mod->n_mixt_classes)*tree->mod->ns*sizeof(phydbl))) Generic_Exit(__FILE__,__LINE__,__FUNCTION__);
+ #else
+@@ -468,7 +468,7 @@
+
+ tree->sum_scale_extra_0 = (int *)mCalloc(tree->data->crunch_len*MAX(tree->mod->ras->n_catg,tree->mod->n_mixt_classes),sizeof(int));
+
+-#if (defined(__AVX__) || defined(__AVX2__) || defined(__SSE__) || defined(__SSE2__) || defined(__SSE3__))
++#if (defined(__AVX__) || defined(__AVX2__) || defined(__SSE3__))
+ #ifndef WIN32
+ if(posix_memalign((void **)&tree->p_lk_extra_0,BYTE_ALIGN,(size_t)tree->data->crunch_len*MAX(tree->mod->ras->n_catg,tree->mod->n_mixt_classes)*tree->mod->ns*sizeof(phydbl))) Generic_Exit(__FILE__,__LINE__,__FUNCTION__);
+ #else
+@@ -479,7 +479,7 @@
+ #endif
+
+
+-#if (defined(__AVX__) || defined(__AVX2__) || defined(__SSE__) || defined(__SSE2__) || defined(__SSE3__))
++#if (defined(__AVX__) || defined(__AVX2__) || defined(__SSE3__))
+ #ifndef WIN32
+ if(posix_memalign((void **)&tree->p_lk_tip_extra_0,BYTE_ALIGN,(size_t)tree->data->crunch_len*tree->mod->ns*sizeof(phydbl))) Generic_Exit(__FILE__,__LINE__,__FUNCTION__);
+ #else
+@@ -497,7 +497,7 @@
+
+ tree->sum_scale_extra_1 = (int *)mCalloc(tree->data->crunch_len*MAX(tree->mod->ras->n_catg,tree->mod->n_mixt_classes),sizeof(int));
+
+-#if (defined(__AVX__) || defined(__AVX2__) || defined(__SSE__) || defined(__SSE2__) || defined(__SSE3__))
++#if (defined(__AVX__) || defined(__AVX2__) || defined(__SSE3__))
+ #ifndef WIN32
+ if(posix_memalign((void **)&tree->p_lk_extra_1,BYTE_ALIGN,(size_t)tree->data->crunch_len*MAX(tree->mod->ras->n_catg,tree->mod->n_mixt_classes)*tree->mod->ns*sizeof(phydbl))) Generic_Exit(__FILE__,__LINE__,__FUNCTION__);
+ #else
+@@ -508,7 +508,7 @@
+ #endif
+
+
+-#if (defined(__AVX__) || defined(__AVX2__) || defined(__SSE__) || defined(__SSE2__) || defined(__SSE3__))
++#if (defined(__AVX__) || defined(__AVX2__) || defined(__SSE3__))
+ #ifndef WIN32
+ if(posix_memalign((void **)&tree->p_lk_tip_extra_1,BYTE_ALIGN,(size_t)tree->data->crunch_len*tree->mod->ns*sizeof(phydbl))) Generic_Exit(__FILE__,__LINE__,__FUNCTION__);
+ #else
+@@ -905,7 +905,7 @@
+ mod->Pij_rr = (vect_dbl *)mCalloc(1,sizeof(vect_dbl));
+ Init_Vect_Dbl(0,mod->Pij_rr);
+
+-#if (defined(__AVX__) || defined(__AVX2__) || defined(__SSE__) || defined(__SSE2__) || defined(__SSE3__))
++#if (defined(__AVX__) || defined(__AVX2__) || defined(__SSE3__))
+ #ifndef WIN32
+ if(posix_memalign((void **)&mod->Pij_rr->v,BYTE_ALIGN,(size_t)mod->ras->n_catg*mod->ns*mod->ns*sizeof(phydbl))) Generic_Exit(__FILE__,__LINE__,__FUNCTION__);
+ #else
+@@ -1021,7 +1021,7 @@
+ e_frq->pi = (vect_dbl *)mCalloc(1,sizeof(vect_dbl));
+ e_frq->pi->len = ns;
+
+-#if (defined(__AVX__) || defined(__AVX2__) || defined(__SSE__) || defined(__SSE2__) || defined(__SSE3__))
++#if (defined(__AVX__) || defined(__AVX2__) || defined(__SSE3__))
+ #ifndef WIN32
+ if(posix_memalign((void **)&e_frq->pi->v,BYTE_ALIGN,(size_t)ns*sizeof(phydbl))) Generic_Exit(__FILE__,__LINE__,__FUNCTION__);
+ #else
+@@ -1144,7 +1144,7 @@
+ eig->r_e_vect_im = (phydbl *)mCalloc(ns*ns,sizeof(phydbl));
+ eig->q = (phydbl *)mCalloc(ns*ns,sizeof(phydbl));
+
+-#if (defined(__AVX__) || defined(__AVX2__) || defined(__SSE__) || defined(__SSE2__) || defined(__SSE3__))
++#if (defined(__AVX__) || defined(__AVX2__) || defined(__SSE3__))
+ #ifndef WIN32
+ if(posix_memalign((void **)&eig->r_e_vect,BYTE_ALIGN,ns*ns*sizeof(phydbl))) Generic_Exit(__FILE__,__LINE__,__FUNCTION__);
+ if(posix_memalign((void **)&eig->l_e_vect,BYTE_ALIGN,ns*ns*sizeof(phydbl))) Generic_Exit(__FILE__,__LINE__,__FUNCTION__);
View it on GitLab: https://salsa.debian.org/med-team/phyml/-/compare/cbbf68ccd9939e684c905c1d6593922bb3b40067...31cca59adc28e6e41dab45d45214670e402a3a91
--
View it on GitLab: https://salsa.debian.org/med-team/phyml/-/compare/cbbf68ccd9939e684c905c1d6593922bb3b40067...31cca59adc28e6e41dab45d45214670e402a3a91
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/20211118/b2e80223/attachment-0001.htm>
More information about the debian-med-commit
mailing list