Bug 1943074

Summary: fftw: FTBFS with upcoming autoconf-2.71
Product: [Fedora] Fedora Reporter: Ondrej Dubaj <odubaj>
Component: fftwAssignee: Conrad Meyer <cse.cem+redhatbugz>
Status: CLOSED WONTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 35CC: cse.cem+redhatbugz, rdieter, susi.lehtola, tomspur, zbyszek
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-08-31 07:42:22 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1942967    

Description Ondrej Dubaj 2021-03-25 12:50:35 UTC
Your package fails to build with the newest upcoming autoconf-2.71, which is part of a wide Fedora change. Please see the attached copr: https://copr.fedorainfracloud.org/coprs/odubaj/autoconf-2.70/packages/. More information about testing your package when building with autoconf available here: https://fedoraproject.org/wiki/Changes/Autoconf_271#How_To_Test

Comment 1 Ondrej Dubaj 2021-04-12 07:16:41 UTC
Gentle ping.

Comment 2 Conrad Meyer 2021-04-12 23:00:05 UTC
(In reply to Ondrej Dubaj from comment #1)
Hi Ondrej,

In https://download.copr.fedorainfracloud.org/results/odubaj/autoconf-2.70/fedora-rawhide-x86_64/02095342-fftw/ , we see that AC_CHECK_SIZEOF(size_t) fails for some reason.  Preceding checks for various integer types seem to pass.  An error was logged to config.log (probably the type isn't defined because a header isn't included?), but that artifact does not appear to be preserved.

Comment 3 Conrad Meyer 2021-04-13 01:54:50 UTC
I have a patch to try, but am not sure how to kick off a build with autoconf-2.71.  It looks like Rawhide is still on 2.69.  It builds with 2.69, but I don't know how meaningful that is.

diff --git a/fftw-3.3.8-configure.ac-sizeof.patch b/fftw-3.3.8-configure.ac-sizeof.patch
new file mode 100644
index 0000000..ce5ea25
--- /dev/null
+++ b/fftw-3.3.8-configure.ac-sizeof.patch
@@ -0,0 +1,12 @@
+--- configure.ac.orig  2021-04-12 15:53:15.663321061 -0700
++++ configure.ac       2021-04-12 15:51:44.423322999 -0700
+@@ -532,7 +532,8 @@
+ AC_CHECK_SIZEOF(unsigned long)
+ AC_CHECK_SIZEOF(long long)
+ AC_CHECK_SIZEOF(unsigned long long)
+-AC_CHECK_SIZEOF(size_t)
++AC_CHECK_SIZEOF(size_t, [], [$ac_includes_default
++#include <stddef.h>])
+ AC_CHECK_SIZEOF(ptrdiff_t)
+
+ AC_CHECK_TYPES([ptrdiff_t])
diff --git a/fftw.spec b/fftw.spec
index bae4a5e..2c2ea4d 100644
--- a/fftw.spec
+++ b/fftw.spec
@@ -14,11 +14,13 @@

 Name:           fftw
 Version:        3.3.8
-Release:        9%{?dist}
+Release:        10%{?dist}
 Summary:        A Fast Fourier Transform library
 License:        GPLv2+
 URL:            http://www.fftw.org
 Source0:        http://www.fftw.org/fftw-%{version}.tar.gz
+# https://bugzilla.redhat.com/show_bug.cgi?id=1943074
+Patch0:                fftw-3.3.8-configure.ac-sizeof.patch
 BuildRequires:  gcc-gfortran

 BuildRequires:  autoconf
@@ -268,6 +270,7 @@ library.

 %prep
 %setup -q
+%patch0 -p0

 %build
 # Explicitly load shell support for the environment-modules package, used
@@ -542,6 +545,9 @@ done
 %endif

 %changelog
+* Mon Apr 12 2021 Conrad Meyer <cemeyer> - 3.3.9-10
+- Patch configure.ac around sizeof(size_t) failure
+
 * Sat Aug 01 2020 Fedora Release Engineering <releng> - 3.3.8-9
 - Second attempt - Rebuilt for
   https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild

Comment 4 Ondrej Dubaj 2021-04-13 05:38:50 UTC
Hi,

you can try building the package locally using mock. You can easily download mock config from our copr and try the build the package. Details here: https://fedoraproject.org/wiki/Changes/Autoconf_271#How_To_Test

Comment 5 Ondrej Dubaj 2021-05-04 08:18:05 UTC
Hi,

any updates here please ? Did you manage to test your patch ?

Thanks.

Comment 6 Conrad Meyer 2021-05-04 16:54:44 UTC
No update.

Comment 7 Ondrej Dubaj 2021-07-15 10:02:13 UTC
Hello, this issue does not seem to be resolved, can you please check it one more time ? Soonly we are planning to move to autoconf-2.71, so there will be FTBFS on this component.

Thank you.

Comment 8 Ben Cotton 2021-08-10 12:56:19 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 35 development cycle.
Changing version to 35.

Comment 9 Zbigniew Jędrzejewski-Szmek 2021-08-27 16:14:04 UTC
Hmm, this is quite strange. configure generates a test like this:

/* confdefs.h */
#define PACKAGE_NAME "fftw"
#define PACKAGE_TARNAME "fftw"
#define PACKAGE_VERSION "3.3.8"
#define PACKAGE_STRING "fftw 3.3.8"
#define PACKAGE_BUGREPORT "fftw"
#define PACKAGE_URL ""
#define PACKAGE "fftw"
#define VERSION "3.3.8"
#define FFTW_ENABLE_ALLOCA 1
#define FFTW_SINGLE 1
#define BENCHFFT_SINGLE 1
#define HAVE_SSE2 1
#define HAVE_AVX 1
#define HAVE_STDIO_H 1
#define HAVE_STDLIB_H 1
#define HAVE_STRING_H 1
#define HAVE_INTTYPES_H 1
#define HAVE_STDINT_H 1
#define HAVE_STRINGS_H 1
#define HAVE_SYS_STAT_H 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_UNISTD_H 1
#define HAVE_SYS_TIME_H 1
#define STDC_HEADERS 1
#define HAVE_DLFCN_H 1
#define LT_OBJDIR ".libs/"
#define HAVE_FCNTL_H 1
#define HAVE_FENV_H 1
#define HAVE_LIMITS_H 1
#define HAVE_MALLOC_H 1
#define HAVE_STDDEF_H 1
#define HAVE_SYS_TIME_H 1
/* end confdefs.h.  */
#include <stddef.h>
#ifdef HAVE_STDIO_H
# include <stdio.h>
#endif
#ifdef HAVE_STDLIB_H
# include <stdlib.h>
#endif
#ifdef HAVE_STRING_H
# include <string.h>
#endif
#ifdef HAVE_INTTYPES_H
# include <inttypes.h>
#endif
#ifdef HAVE_STDINT_H
# include <stdint.h>
#endif
#ifdef HAVE_STRINGS_H
# include <strings.h>
#endif
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_SYS_STAT_H
# include <sys/stat.h>
#endif
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
int
main (void)
{
  if (sizeof ((size_t)))
          return 0;
  return 0;
}

This fails, because the argument to sizeof must be either a
1. cast ("(size_t)")
2. an unary-expression
(see https://docs.microsoft.com/en-us/cpp/c-language/sizeof-operator-c?view=msvc-160).

All AC_CHECK_SIZEOF() checks fail.
But I don't understand where the extra parens come from. AC_DEFUN([AC_CHECK_SIZEOF]) in
/usr/share/autoconf/autoconf/types.m4 doesn't have them.

Comment 10 Ondrej Dubaj 2021-08-31 07:42:22 UTC
Autoconf-2.71 Fedora Change is completed. According to this, I am closing this tracker and if any FTBFS will appear in Fedora Rawhide, new F36FTBFS tracker will be created for this purposes, thank you for cooperation.