This is a temporary workaround to suppress the last remaining 4 compile-time-warnings for GCC4.7.2 dbg-cfg:
WARNING: /reactos/dll/win32/rsaenh/rsaenh.spec line 26: Exported symbol 'DllRegisterServer' should be PRIVATE
WARNING: /reactos/dll/win32/rsaenh/rsaenh.spec line 27: Exported symbol 'DllUnregisterServer' should be PRIVATE
WARNING: /reactos/dll/win32/msxml3/msxml3.spec line 10: Exported symbol 'DllGetClassObject' should be PRIVATE
WARNING: /reactos/dll/win32/ole32/ole32.spec line 137: Exported symbol 'DllGetClassObject' should be PRIVATE
The new checks were explicitly and intentionally enabled (actually by good intentions!) by:
0.4.13-dev-720-g 2becb000c8
So the muting is no proper fix. But since CORE-16380 is now unfixed for 3.5years (although there were various attempts),
I lost the hope that we will see a proper fix anytime soon.
It is more important to me to reach the "0 warnings at compile time" for the primary toolchain GCC4.7.2 dbg
for releases/0.4.13 and releases/0.4.14 than seeing these currently unaddressable warnings.
And with this commit I will reach that.
Afterwards all releases/0.4.7 to releases/0.4.14 do have 0 compile-time-warnings for their primary toolchain
GCC4.7.2 dbg-cfg RosBEWin2.1.6 and
GCC4.7.2 dbg-cfg RosBELin2.1.2 on Carrier-Releaser.
I intend to defend that state with *claws and teeth*! It took me long to get there!
When needed the checks can still be performed on all releases/0.4.7 till releases/0.4.14 on demand
by building with MSVC2010, which does these checks out-of-the-box without any additional code on our side
and it generates the same warnings for those very same modules then.
Once we will have a proper fix on master, I will reenable the check and port back the final thing.
Master-branch will not receive this workaround and will continue to warn even for GCC.
I verified my workaround to compile successfully with:
RosBEWin 2.1.6 GCC4.7.2 dbg-cfg (tested upfront)
RosBEWin 2.1.6 GCC4.7.2 rls-cfg (tested upfront)
RosBEWin 2.2.2 GCC8.4.0 dbg-cfg (tested upfront)
RosBEWin 2.2.2 GCC8.4.0 rls-cfg (tested upfront)
RosBEWin 2.1.6 MSVC2010SP1 (16.0.40219.1) dbg-cfg (tested upfront)
RosBEWin 2.1.6 MSVC2010SP1 (16.0.40219.1) rls-cfg (tested upfront)
(RosBELin 2.1.2 GCC4.7.2 dbg-cfg carrier-releaser) (I will test that after the push in a few minutes)
I did not test Clang at all.
by hand!
Motivation is to fix the following warnings at configure-time for *MSVC x86 dbg* :
-- umandlg has no base address
-- hotplug has no base address
-- qcap has no base address
-- mydocs has no base address
-- fusion has no base address
-- fusion_1_1 has no base address
-- fusion_2_0 has no base address
-- storprop has no base address
-- localspl_apitest.dll has no base address
This fixes CORE-14831 for *MSVC dbg* for this release-branch at least.
Meaning: It hides the effect, without fixing the cause.
It is not a sustainable solution for master yet.
We'd need to improve the python script for that.
I tested afterwards the bootup of a build configured via:
-DENABLE_ROSTESTS=1 -DENABLE_ROSAPPS=1
and built with:
MSVC 2010SP1 (16.0.40219.1) x86 target in dbg configuration
and verified that we had no relocation happening until 3rd stage desktop VBox4.3.12.
MSVC 2010SP1 (16.0.40219.1) x86 target in *rls* configuration was not
tested yet, as that up to now did never reach the desktop yet for unrelated reasons.
I will not upload an iso to sourceforge after this commit,
because it will not have any impact for our primary GCC 4.7.2 toolchain.
See https://reactos.org/wiki/ReactOS_Foundation for more information.
the first part of CORE-18191
picked from 0.4.15-dev-4866-g 6881d8c624
Respect:
-Colins wish to leave out for now all the matches in kbdtool for legal uncertainty
-boot_images.cmake on master vs. boot/CMakeLists.txt in older branches
-treating cpu.inf special in this first commit for the sake of keeping sync to all other infs
-unlike master I decided to groom also cdmake, because I don't see any reason yet to dump that
in the older branches
-all releases down to releases/0.4.7 were released for the first time after the "ReactOS foundation"
dissolved already in 2015. So all are definitely fine to receive this commit.
-port back some EOL whitespace fixes as well in common.ver to sync the file to 100% to master head
by hand!
Motivation is to fix the following warnings at configure-time for *GCC dbg* :
-- umandlg has no base address
-- hotplug has no base address
-- qcap has no base address
-- mydocs has no base address
-- fusion has no base address
-- fusion_1_1 has no base address
-- fusion_2_0 has no base address
-- storprop has no base address
-- localspl_apitest.dll has no base address
This fixes CORE-14831 for *GCC dbg* at least for this branch.
Meaning: It hides the effect, without fixing the cause.
It is neither a sufficient fix for other toolchains/configs,
nor a sustainable solution for master yet.
We'd need to improve the python script for that.
The interesting kernel32 part is a port of
0.4.15-dev-2069-g fd8080b094
CORE-16757 'Task Manager failed to show process's priority'
which I actually wanted to improve for 0.4.14.
But if we took that on its own, then it would unhide
CORE-17596 'Google Earth 7.1.8 regressed AGAIN by the same work'
That's why we take with us:
0.4.15-dev-2766-g 27fcfe66a2 (is also part of CORE-6473, I left the 2nd commit out that added an assert in NTOSKRNL)
Small hack: this backport required me to define _Unreferenced_parameter_ myself in tcp.c
stolen from newer sdk/include/psdk/specstrings.h. I didn't want to port back that entire file as well.
In combination those two fixes allow both 'Google Earth and to change process priority' to be fixed within the same build.
But I felt a bit more safe then by taking
0.4.15-dev-2793-g 979b7d4d8e
with me as well, because I was too afraid, that I might otherwise introduce
CORE-17647 'BSOD 0xc2 BAD_POOL_CALLER induced by networking, triggered by using KeePass 2.23'
although I could not trigger that in practice when leaving that third commit out as an experiment.
And since it was a safe no-brainer-fix, I couldn't resist to also pick
0.4.15-dev-764-g 4aeb45ce0c (#3170)
This fixes CORE-17021 'Mail.ru agent crashes on master'
(just threw first-chance exception in 0.4.14RC without actually causing the crash there)
which regressed by 0.4.14-dev-418-g 661b8a2a05
and it fixes ROSTESTS-375 'riched20:txtsrv crashes on Test WHS x86'
which regressed by 0.4.14-dev-419-g 76cf09cfea
fix picked from 0.4.15-dev-3370-g c8b6abab80
RosBE2.2.1 Win GCC8.4.0 RELEASE bootcd build was failing.
This was the last build error for the configuration:
-DENABLE_ROSTESTS=1 -DCMAKE_BUILD_TYPE=Release
fix picked from 0.4.15-dev-285-g 5349f49cfe
Sidenote of current compiler support on releases/0.4.14 (tested on 0.4.14-RC-110-g8600a00):
RosBE2.1.2 Lin GCC4.7.2 Debug build worked before and after this commit (bootcd+livecd) <- primary toolchain for releases/0.4.14
RosBE2.1.6 Win GCC4.7.2 Debug build worked before and after this commit (bootcd+livecd)
RosBE2.1.6 Win GCC4.7.2 Release build worked before and after this commit (bootcd+livecd)
RosBE2.2.1 Win GCC8.4.0 Debug build worked before and after this commit (bootcd+livecd)
RosBE2.1.6 Win MSVC2010SP1 Debug build worked before and after this commit (bootcd+livecd)
RosBE2.1.6 Win MSVC2010SP1 Release build worked before and after this commit (bootcd+livecd)
VSSolution msbuild 2010SP1 Debug build should also work, last time tested 0.4.14-RC-68-g366c46b
Newer MSVC (<= MSVC19.28.29115) might/should work as well, but I did not explicitly test those myself.
observed with MSVC2010SP1 16.0.40219.1 in rls-config several times:
sdk\lib\crt\string\wtoi64.c(28) : warning C4146: unary minus operator applied to unsigned type, result still unsigned
sdk\lib\crt\string\wtoi64.c(194) : warning C4146: unary minus operator applied to unsigned type, result still unsigned
the fix is a PARTIAL port of 0.4.15-dev-2951-g 5d8e834897
and while touching the file
fix another white-space-glitch.
in sum that brings us 100% in sync in this file to
current master head 0.4.15-dev-3264-g570cedf.
Squashed backport of:
0.4.15-dev-3086-g 236649c626 (#3868) and
0.4.15-dev-3147-g 3bf7e3ac13 (#3953)
to fix some regressions for themed scrollbars that were introduced by
0.4.14-dev-1134-g 00adb1a3f9
fixes all or most parts of CORE-16735 without introducing CORE-17754 and CORE-17755
By taking alternative code-paths in WdmAud and bypassing Sysaudio.
This is my 2nd attempt to commit that.
This is a squashed backport of:
0.4.15-dev-791-g 6d7ebc2048 the USE_MMIXER_LIB which gives the best results when paired with those 2 previous patches:
0.4.15-dev-765-g b8e936a57b CORE-17214 (#3148) wdmaud-racecondition-fix and
0.4.15-dev-796-g a27f0debca CORE-17276 winmm:mixer-testbot-crash-fix
Defining USE_MMIXER_LIB will fix/improve:
- the test execution times of "GCCLin_x86 on Test VBox" will be dramatically improve (iirc by ~10-15min)
- CORE-8726/CORE-9986/CORE-16564 AC97 driver from rapps will work in the same session that the driver is installed, not a single reboot is needed anymore
- CORE-13202 Unhandled exception from wdmaud.drv when recording sound in Scratch 1.4 leads to app-crash (gets fixed even for older builds that did not receive 0.4.15-dev-2794-g 81f8bce yet)
- CORE-13488 A deadlock in "DiabloII" character selection screen and "The Lion King II"
- CORE-9981 "DosBox + Commander Keen6" almost 100% fixed, DosBox + Commander Keen6 properly plays music instead of garbled output,
same improvement for "ScummVM 2.0 with Monkey Island 2"
The playback is not yet *entirely* perfect, still a few hiccups now and then, but by orders of magnitude better than before.
Defining USE_MMIXER_LIB will also have some negative aspects:
- CORE-17277 crash of dsound:duplex on "GCCLin_x86 on Test VBox" gets unhidden on the bot, but was proven to be broken even beforehand already. The driver beforehand was just not found and the tests were skipped therefore.
- CORE-17278 crash of dsound:capture on "GCCLin_x86 on Test VBox" gets unhidden on the bot, but was proven to be broken even beforehand already. The driver beforehand was just not found and the tests were skipped therefore.
- It may also have a negative impact for CORE-17285 "Realtek HD Audio" but Oleg Dubinsky accepted to tolerate that and aims to approach it differently. I will resolve that as WontFix now.
This fixes some blurry icons in systray when 2k3sp2 kernel32.dll is used in ros CORE-12004
That part in user32 was a regression of SVN r71609 == git a44dfe6c76
While we are at it we do fix some other modules as well, that used those NT6+flags.
The fix was picked from 0.4.15-dev-788-g a04831677e
Although the new layout that I committed in the previous commit
was favored by community ratings votes 8:0,
some devs still preferred the old layout with the bigger logo
because they liked the easteregg. So this commit restores
that.
But it syncs to that features latest&greatest implementation
we have in 0.4.15-dev-1685-gd0c237a instead of reverting the
previous commit to not unnecessarily have many bugs with it
that were still affecting the older releases beforehand.
Aside from the general tabs dialogs layout this commit does
also fix some minor issues in the translations for the oldest
branches in pl-PL, jp-JA, zh-CN and zh-TW.
And it fixes an x64 issue in general.c for 0.4.7 and 0.4.8.
Allows to complete the whole 'ninja bootcd' after 'configure -DCMAKE_BUILD_TYPE=Release'
for compiler MSVC 2010SP1 16.0.40219.1 with RosBE 2.1.6
Similar to the fix committed in 0.4.15-dev-1453-g 4ad7b6d
"cl : Command line error D8016 : '/Ox' and '/RTC1' command-line options are incompatible"
in MSVC builds with Release Configuration
Addendum to 0.4.14-dev-1373-g 92dfec219d
fix picked from commit 0.4.15-dev-1186-g a2a6038e56
A squashed backmerge of 3 commits authored by Thomas Faber.
They do help to speed up RosBE2.1.6 within ReactOS.
'configure' runs faster by ~ factor 5.
'ninja bootcd -j1' runs faster by ~ factor 2.
I considered back-porting that a necessity because we
considerably lost speed over the last years in those scenarios.
I tested, and it works well also in the 0.4.14RC.
0.4.15-dev-309-g
10d23614d3
Use LastEntryInSegment to speed up RtlpFindAndCommitPages. CORE-14588
--------------------------
0.4.15-dev-307-g
1b7a4b3ebf
Add and populate LastEntryInSegment. CORE-14588
--------------------------
0.4.15-dev-306-g
78dddd125c
Create a define for the common members of HEAP and HEAP_SEGMENT. CORE-14588
The code relies on these members matching up, so it's confusing for them
to be duplicated.
By reverting the guilty rev 0.4.14-dev-1239-g
7481bda679
and placing a C_ASSERT() to protect us from doing the
same fault again in the future. (proposed by Mark Jansen)
This will allow again to use kernel32.dll from 2k3sp2 to
reach desktop and it will allow Google Earth to run again.
Unfortunately it will break CORE-16757 again,
but we did not ship that improvement yet
and we believe that revert to be correct.
When approaching CORE-16757 later, make sure to double-check
also CORE-17247 & CORE-17106 with your fix.
We did excessive testing here, see
https://jira.reactos.org/browse/CORE-17247?focusedCommentId=125166&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-125166
fix cherry picked from commit 0.4.15-dev-730-g
abbe656407
Fixes build with ML 14.26.
Backport was recommended by Thomas Faber. I can not retest that compilation myself.
cherry picked from commit 0.4.15-dev-319-g
e4066536c2
The build broke due to a typo introduced by
0.4.15-dev-275-g
612729b092
../dll/win32/syssetup/wizard.c: In function 'ProductPageDlgProc':
../dll/win32/syssetup/wizard.c:527:5: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-
after-statement]
cc1.exe: all warnings being treated as errors
fix cherry-picked from 0.4.15-dev-278-g
4cbb21761c
-------------------------
[0.4.14][SYSSETUP][BOOTDATA] Make Server default again and write Service Pack (#2749)
- Make "ReactOS Server" the default product option again instead of "ReactOS Workstation".
- Write "Service Pack" info onto registry.
- Add ProductOption option to bootcd unattend.inf.
- Delete IDC_PRODUCT_SUITE and IDC_PRODUCT_TYPE controls.
To fix regression with Visual Studio 2010 setup CORE-17028
I took 2 translation files in their most recent version from master 0.4.15-dev-275-g
612729b to prevent having to resolve any conflicts manually:
tr-TR.rc
uk-UA.rc
cherry picked from commit 0.4.15-dev-275-g
612729b092
part of the fix for CORE-16908
"Unable to select a Zip file for sending with Common Open Dialog"
which was unhidden by 0.4.9-dev-632-g
da6a46c6ac
fix cherry-picked from commit 0.4.15-dev-252-g
f379a29606
This version (after .rsrc) works different than the
proper version I used for 0.4.12 (after .reloc).
Inserting after .rsrc is actually not correct, but Thomas believes it can
be used as a temporary trick to avoid random memory corruption upon
relocations of the kernel, caused by ROSBE-154.
I follow his advice, although when judging from practical tests only:
as long as we limit this script to NTOSKRNL like I do for releases
there have no negative consequences been observed in real life yet
even with the proper version of 0.4.12.
Up to now those problems have only been observed when used for drivers
MODULE TYPE sdk/cmake/gcc.cmake as well, like
it was tried for a moment in master 0.4.13-dev-609-g
c4d8e2a6e9
Using for drivers immediately did lead to BSODs like CORE-16183 and therefore was
mitigated in master by total disabling of the scripts for both,
kernel and drivers in
0.4.13-dev-621-g
36e9a6f8dd
To allow installing DVDWritenow without BSOD,
we need the script at least for ntoskrnl!
I committed this patch (after .rsrc) already into 0.4.13RC and master
cherry picked from commit 0.4.15-dev-220-g
d28677795e
This small win32 library provides time-zone utility wrappers around
Win32 functions, that are used by different ReactOS modules such as
timedate.cpl, syssetup.dll, and a possible future 'tzutil' tool.
The code has been extracted from the common code found in both
timedate.cpl and syssetup.dll.
Since binutils can not add this, we re-introduce pefixup.
It searches for the exported symbol '_load_config_used',
and uses that to fill out the LOAD_CONFIG directory in the PE header
DiskGeometryGetPartition() and DiskGeometryGetDetect() are guarded in NTDDI_VERSION for version checking as they differ between Windows XP and Server 2003. In conjunction to that, the PARTITION_INFORMATION_EX structure has "IsServicePartition" as member which is missing in the current NT IOCTL Disk interface header.
Shell change notification has been implemented in #2432. But as @yagoulas said, source code structure is in mess. We improved simplicity and human readability of our source code.
- Move wine/changenotify.c code into changenotify.c and shelldesktop/CChangeNotify.cpp.
- Simplify code and rename the identifiers and add many comments. CORE-13950
Need a way to send WM_DEVICECHANGE from the Service manager application.
Next step is to process it in the Client/Server Run-time Subsystem.
See CORE-16492.
Remove RTC switch from configure.cmd, now MSVC runtime checks are
supposed to be enabled/disabled via CMake define (-DRUNTIME_CHECKS=1)
Prepare for adding more dynamic analysis options