New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
build-time failure on FreeBSD using clang++ and configuring with '-Duselongdouble' #17131
Comments
From @jkeenanWhen I attempt to build perl on FreeBSD using clang++ as the C-compiler ##### "make.freebsd11.clang++.longdouble.output.txt" 61L, 7089C Stop. I first noticed this in smoke-test reports filed by Carlos Guevara By contrast, on this platform I *can* build perl 5 blead (a) with Assuming this is not a regression, and given the obscurity of this Thank you very much. perl perl perl |
From @jkeenanecho @`sh cflags "optimize='-O2'" opmini.o` -DPERL_IS_MINIPERL -DPERL_EXTERNAL_GLOB opmini.c Stop. |
From @jkeenanOn Sat, 17 Aug 2019 22:10:38 GMT, jkeenan@pobox.com wrote:
The initial report usd clang++-6. ##### However, I get similar failures when using clang++-8. ##### ##### Stop. Thank you very much. -- |
The RT System itself - Status changed from 'new' to 'open' |
From @jkeenanOn Sat, 17 Aug 2019 22:32:59 GMT, jkeenan wrote:
And, similar failure with clang-6/uselongdouble on FreeBSD-12. ##### Stop. ##### |
From @jkeenanOn Sat, 17 Aug 2019 22:41:03 GMT, jkeenan wrote:
Some findings: 1. If on FreeBSD-11.2 I configure the simplest possible perl -- which implies using the default compiler, 'clang' -- and then ack for 'd_Gconvert', I get this: ##### uconfig.sh uconfig64.sh Note that 'd_Gconvert' is defined the same in all 3 locations. 2. If to the previous configuration I add '-Duselongdouble', I get a different definition in config.sh from the other two files: ##### uconfig.sh uconfig64.sh Nonetheless, 'make' completes and 'make test_harness' gets a PASS. 3. If to the previous configuration I add '-Dcc=clang++, I get a definition for d_Gconvert in config.sh that is specified in terms of the system function 'gcvt' -- which AFAICT does not exist on FreeBSD (no man page; no pkg)! ##### uconfig.sh uconfig64.sh So why in this case is Configure using 'gcvt' as part of the value for d_Gconvert? This difference appears to be consistent with the error output. 4. Now if from the previous configuration I subtract '-Dcc=clang++' -- that is, I go back to 'clang' but retain '-Dusedouble', I get this: ##### uconfig.sh uconfig64.sh And 'make test_harness' gets PASS in Case 4. 5. Now let's see what happens if I configure with clang/uselongdouble but manually edit config.sh to provide: ##### Result: 'make' completes successfully; 'make test_harness' PASS. Inference: (i) On a platform where 'gcvt' is not found; (ii) when using clang++ as the C-compiler; (iii) when configuring with '-Duselongdouble'; then ./Configure is assigning an incorrect value to 'd_Gconvert' in config.sh. The build-time errors flow therefrom. 'make' and 'clang++' are doing the right thing; ./Configure is not. What should we do in the configuration stage to address this? Thank you very much. |
From @jkeenanOn Sun, 18 Aug 2019 01:52:17 GMT, jkeenan wrote:
I created this branch to analyze the problem: smoke-me/jkeenan/134371-gconvert See RT 134375 for what may be a more general problem. Thank you very much. |
From @doughera88On Sun, Aug 18, 2019 at 08:09:04AM -0700, James E Keenan via RT wrote:
clang++ seems to be in error here, but the relevant Configure program Thanks, -- |
From @jkeenanOn Mon, 19 Aug 2019 02:21:01 GMT, doughera wrote:
When I run ./Configure (which will be Monday, as it's late here), should I be testing *both* your commit in the branch and mine (a9425c4 and 74cd64c), or just yours (a9425c4)? Thank you very much. |
From @doughera88On Sun, Aug 18, 2019 at 08:20:56PM -0700, James E Keenan via RT wrote:
Both commits are fine. Run Configure without the -s option. You should no Thanks for testing! -- |
From @jkeenanOn Mon, 19 Aug 2019 11:02:50 GMT, doughera wrote:
Looks good! ##### $ make Branch rebased on blead and pushed to origin. Now, assuming smoke tests confirm the validity of these patches on other platforms, we have solved the immediate problem posed in this RT. But there is probably still a problem with clang++, as suggested in https://rt-archive.perl.org/perl5/Ticket/Display.html?id=134375. Have you had a chance to look at that? Thank you very much. -- |
From @doughera88On Mon, Aug 19, 2019 at 05:18:58AM -0700, James E Keenan via RT wrote:
Yes. I have reduced it to a simple test case and have started the -- |
From @jkeenanOn Mon, 19 Aug 2019 16:09:14 GMT, doughera wrote:
Now that 5.31.3 is out I will merge the branch into blead and squash to a single commit. -- |
From @jkeenanOn Tue, 20 Aug 2019 16:36:40 GMT, jkeenan wrote:
Merged to blead in commit 1e1b6d9. Will monitor for several days before closing. Other clang++- and uselongdouble-related tickets remain open. Thank you very much. -- |
@jkeenan - Status changed from 'open' to 'pending release' |
Migrated from rt.perl.org#134371 (status was 'pending release')
Searchable as RT134371$
The text was updated successfully, but these errors were encountered: