[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