Bug 1984799

Summary: stress-ng: FTBFS due to dynamic PTHREAD_STACK_MIN (glibc 2.34 related)
Product: [Fedora] Fedora Reporter: Florian Weimer <fweimer>
Component: stress-ngAssignee: Christopher Brown <chris.brown>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 35CC: chris.brown, me, negativo17, yselkowi
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: stress-ng-0.13.00-1.fc35 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-09-02 13:11:01 UTC Type: Bug
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: 1984800    

Description Florian Weimer 2021-07-22 09:27:10 UTC
Quoting Carlos from the upstream ticket:

“
Upstream glibc 2.34 will release with a non-constant value of PTHREAD_STACK_MIN. This is because hardware vendors like Intel and Arm want to have scalable vector extensions whose size can no longer be determined at compile time. The minimum thread stack size in almost all cases has been really too small. By switching to sysconf we can directly pipe the kernel's expected minimum stack size to the process. This will need to be fixed in stress-ng. If you need help writing the change please reach out!
”

The error looks like this:

CC stress-pthread.c
In file included from /usr/include/bits/local_lim.h:81,
                 from /usr/include/bits/posix1_lim.h:161,
                 from /usr/include/dirent.h:233,
                 from stress-ng.h:50,
                 from stress-pthread.c:25:
stress-pthread.c: In function 'stress_pthread':
stress-pthread.c:403:26: error: missing binary operator before token "("
  403 | #if DEFAULT_STACK_MIN == PTHREAD_STACK_MIN
      |                          ^~~~~~~~~~~~~~~~~
In file included from stress-pthread.c:25:
stress-ng.h:844:35: warning: comparison of integer expressions of different signedness: 'long long unsigned int' and 'long int' [-Wsign-compare]
  844 | #define STRESS_MAXIMUM(a,b) (((a) > (b)) ? (a) : (b))
      |                                   ^
stress-pthread.c:406:35: note: in expansion of macro 'STRESS_MAXIMUM'
  406 |         const size_t stack_size = STRESS_MAXIMUM(DEFAULT_STACK_MIN, PTHREAD_STACK_MIN);
      |                                   ^~~~~~~~~~~~~~
stress-ng.h:844:50: warning: operand of '?:' changes signedness from 'long int' to 'long long unsigned int' due to unsignedness of other operand [-Wsign-compare]
  844 | #define STRESS_MAXIMUM(a,b) (((a) > (b)) ? (a) : (b))
      |                                                  ^~~
stress-pthread.c:406:35: note: in expansion of macro 'STRESS_MAXIMUM'
  406 |         const size_t stack_size = STRESS_MAXIMUM(DEFAULT_STACK_MIN, PTHREAD_STACK_MIN);
      |                                   ^~~~~~~~~~~~~~
make[1]: *** [Makefile:372: stress-pthread.o] Error 1

Comment 1 Christopher Brown 2021-07-22 09:32:10 UTC
Thanks Florian, fixed 3 days ago upstream: 

https://github.com/ColinIanKing/stress-ng/commit/f839de283c44ffe46a2d14bfdf854c145abd8ed6

Will update when a release is pushed that includes this.

Comment 2 Ben Cotton 2021-08-10 13:14:23 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 35 development cycle.
Changing version to 35.

Comment 3 Christopher Brown 2021-09-01 11:12:08 UTC
Hit another bug regarding how we handle verbosity in the Makefile.
Upstream has fixed this so added temp fix in spec file to resolve.

Comment 4 Fedora Update System 2021-09-01 13:34:30 UTC
FEDORA-2021-86c58df665 has been submitted as an update to Fedora 35. https://bodhi.fedoraproject.org/updates/FEDORA-2021-86c58df665

Comment 5 Fedora Update System 2021-09-01 19:27:25 UTC
FEDORA-2021-86c58df665 has been pushed to the Fedora 35 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2021-86c58df665`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2021-86c58df665

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 6 Fedora Update System 2021-09-24 20:13:28 UTC
FEDORA-2021-86c58df665 has been pushed to the Fedora 35 stable repository.
If problem still persists, please make note of it in this bug report.