-
Notifications
You must be signed in to change notification settings - Fork 5.8k
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
8253167: ARM32 builds fail after JDK-8247910 #259
Conversation
👋 Welcome back kbarrett! A progress list of the required criteria for merging this PR into |
@kimbarrett The following label will be automatically applied to this pull request: When this pull request is ready to be reviewed, an RFR email will be sent to the corresponding mailing list. If you would like to change these labels, use the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good!
@kimbarrett This change now passes all automated pre-integration checks. In addition to the automated checks, the change must also fulfill all project specific requirements After integration, the commit message will be:
Since the source branch of this PR was last updated there have been 8 commits pushed to the
As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid automatic rebasing, please merge ➡️ To integrate this PR with the above commit message to the |
Mailing list message from Boris Ulasevich on hotspot-dev: Hi, Yes, the change is Ok. regards, On Sat, Sep 19, 2020 at 12:07 AM Kim Barrett <kbarrett at openjdk.java.net> wrote: |
/reviewer credit bulasevich |
@kimbarrett |
@kimbarrett |
Mailing list message from Kim Barrett on hotspot-dev:
Thanks. |
/summary Removed platform-dependent definitions of BREAKPOINT as asm(breakpoint instruction). |
@kimbarrett Setting summary to |
/integrate |
@kimbarrett Since your change was applied there have been 8 commits pushed to the
Your commit was automatically rebased without conflicts. Pushed as commit bca9e55. 💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored. |
Please review this fix for a build failure for arm32.
nconstexpr functions cannot contain asm statements (until C++20), even if
not executed by a constexpr invocation. This means assert (for example)
can't be used in a constexpr function on arm32, because of the
implementation of the BREAKPOINT macro as an asm statement for linux-arm.
The current arm32 implementation is from JDK-8077648: "ARM: BREAKPOINT is
wrong for thumb", which is a Confidential bug about Oracle's old closed
source arm32 port. That port was open sourced by JDK-8168503: "JEP 297:
Unified arm32/arm64 Port". The discussion of JDK-8077648 suggested making
the arm32 port be like nearly all others. That is, have BREAKPOINT expand to
a call to ::breakpoint(), with any empty body for that function and a
comment that one should use a debugger to set a breakpoint there.
This change takes that alternative approach.
The same problem likely exists for win32, which also implements BREAKPOINT
as an asm statement. However, I don't have the infrastructure to do a win32
build to demonstrate that. But I'm making a similar change there on spec.
Note that the Windows implementation of ::breakpoint() ultimately calls the
DebugBreak Win32 library function. That should work for the windows-x86 port
too.
I don't know why we have that difference of some platforms having an
affirmative platform-specific breakpoint operation in place while others
require a debugger to set one, but that difference already exists. This
change does move arm32 from the former to the latter camp though. I'm
guessing that won't matter; if it does then we'll need to conditionalize the
body of ::breakpoint().
There may be some further cleanup that could be done after this change.
We don't really need the BREAKPOINT macro anymore, and could just
use ::breakpoint() directly. But I think that's out of scope for dealing
with the build failure(s).
Testing:
build linux-arm.
tier1 for Oracle supported platforms.
Progress
Issues
Reviewers
Download
$ git fetch https://git.openjdk.java.net/jdk pull/259/head:pull/259
$ git checkout pull/259