-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
[CMAKE] Fix system boot crash when compiled as NT6+ #6869
Conversation
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.
What is the problem here? That 0x600 dlls need more space than 0x502 ones?
Shouldn't we use a separate set of files for each version?
If not, I think we should had a reminder comment, in the very files in git, that, from now on, they must be regenerated with 0x600 dlls only, in order to support both versions.
And I hope 0x600 builds do not miss any 0x502 filenames...
@@ -1,121 +1,121 @@ | |||
# Generated from C:\Users\katahiromz\reactos-1\output-MinGW-i386 | |||
# Generated from ../../output-MinGW-i386 |
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.
I suggest to remove this line from git repository: updating it each time someone uses a different path is only noise.
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.
I suggest to preserve the directory name output-MinGW-i386
which tells the build configuration.
Currently, yes, 0x600 needs more space. |
Perhaps indeed it would be of interest to use new "baseaddress[_msvc]_0600.cmake" files for such builds, until at least we are able to auto-generate these at build time. |
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.
4666163
to
170d076
Compare
456bb5d
to
230d962
Compare
|
230d962
to
dc9f076
Compare
Build failure seems unrelated:
Try again... |
Fix system boot crash with `STATUS_ILLEGAL_DLL_RELOCATION` when compiled with `-DDLL_EXPORT_VERSION=0x600`
dc9f076
to
fd2c186
Compare
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.
We are almost there: latest gcc x86 dbgNT502
I am not sure why it does still complain about those 2 since they are now both mentioned in the GCC baseaddress.cmake.
And in releases/0.4.7 to releases/0.4.14 that works and is enough, and leaves us with zero warnings in this context.
In the old branches I had a final empty-line in the file.... Not sure whether that helps to cut off one more... ???
That's a pic from releases/0.4.11 for example, see the blinking cursor...
But I am now giving my approval already, because the status after your PR is now already definitely better than the status of master head.
For MSVC dbg, the current state warns about a few more modules still, but I don't remember what the status quo on master head is currently with that, because I cannot build with that myself anymore since the VS2010-dropping:
EDIT: Ahh now I know why it still warns about notifyhook and vfd for GCC: because those 2 are only mentioned in MSVC, and not in the GCC file. I missed that detail, when I quickly searched for them in the changed files.
So yes, theoretically those could still be fixed as well.
Purpose
Fix system boot crashed with
STATUS_ILLEGAL_DLL_RELOCATION (0xC0000269)
when compiled with-DDLL_EXPORT_VERSION=0x600
.JIRA issue: None
Proposed changes
Run
gen_baseaddress.py
to update the baseaddress. Test DLLs are not involved, lemme know if-DENABLE_ROSTESTS=1
is needed.Before:
After:
In Debug mode, another error logged:
which is not point the problem out, thanks DarkFire01 who give me hint to find the problem around base address, all are work fine now.