James Tabor | 1 Jul 2008 19:30
Picon

[ros-diffs] [mpiulachs] 34223: - hackfix unbootable image (part 1/2)

Hi,
Does "make install" work for you by any chance?

I get this:

bash-3.1# make install
mingw32-make: *** No rule to make target `boot/bootdata/i386/hivecls.inf',
needed by `reactos/system32/config/default'.  Stop.
Alex Ionescu | 1 Jul 2008 20:26
Picon

Re: [ros-diffs] [fireball] 34230: - Fix a problem with normal and special APCs being inserted in the wrong order, spotted by Jury Sidorov. Now Borland Turbo Debugger should be able to debug applications, also it can fix hangs in other applications. - When delivering kernel APC, set the pending flag to false (by analogy with delivering user APC and clearing its pending flag). See issue #3426 for more details.

Um...

KiDeliverApc already sets KernelApcPending = FALSE; Now you're setting  
it twice...please revert.

On 1-Jul-08, at 3:08 AM, fireball@... wrote:

> Author: fireball
> Date: Tue Jul  1 05:08:14 2008
> New Revision: 34230
>
> URL: http://svn.reactos.org/svn/reactos?rev=34230&view=rev
> Log:
> - Fix a problem with normal and special APCs being inserted in the  
> wrong order, spotted by Jury Sidorov. Now Borland Turbo Debugger  
> should be able to debug applications, also it can fix hangs in other  
> applications.
> - When delivering kernel APC, set the pending flag to false (by  
> analogy with delivering user APC and clearing its pending flag).
> See issue #3426 for more details.
>
> Modified:
>    trunk/reactos/ntoskrnl/ke/apc.c   (contents, props changed)
>
> Modified: trunk/reactos/ntoskrnl/ke/apc.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/apc.c?rev=34230&r1=34229&r2=34230&view=diff
> = 
> = 
> = 
> = 
(Continue reading)

Alex Ionescu | 1 Jul 2008 20:28
Picon

jura@...> - Prevent boolean flags from being optimized away by compiler (due to PSEH usage) by making them volatile. See issue #3408 for more details.

What?

Why would the compiler optimize these away? This doesn't make any sense.

If something is happening to these flags, PSEH should be fixed -- not  
making every flag in the source base a volatile.

On 1-Jul-08, at 3:48 AM, fireball@... wrote:

> Author: fireball
> Date: Tue Jul  1 05:48:50 2008
> New Revision: 34232
>
> URL: http://svn.reactos.org/svn/reactos?rev=34232&view=rev
> Log:
> Yuri Sidorov <jura@...>
> - Prevent boolean flags from being optimized away by compiler (due  
> to PSEH usage) by making them volatile.
> See issue #3408 for more details.
>
> Modified:
>    trunk/reactos/ntoskrnl/mm/virtual.c
>
> Modified: trunk/reactos/ntoskrnl/mm/virtual.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/virtual.c?rev=34232&r1=34231&r2=34232&view=diff
> = 
> = 
> = 
> = 
> = 
(Continue reading)

Yury Sidorov | 1 Jul 2008 21:03
Favicon

jura@...> - Prevent boolean flags from beingoptimized away by compiler (due to PSEH usage) by making themvolatile. See issue #3408 for more details.

Hi,

It's corner case problem and it occurs only in these functions.

Code:

BOOLEAN f = FALSE;

f = TRUE;
call_some_func();
f = FALSE;

gcc optimizer removes TRUE/FALSE assignments, since it knows that f 
was FALSE before this code block and remains FALSE after. gcc knows 
nothing about exceptions and SEH and performs such optimizations 
here...

Yury Sidorov.

----- Original Message ----- 
From: "Alex Ionescu" <ionucu@...>
To: <ros-dev@...>
Sent: Tuesday, July 01, 2008 9:28 PM
Subject: Re: [ros-dev] [ros-diffs] [fireball] 34232: Yuri 
Sidorov<jura@...> - Prevent boolean flags from
beingoptimized 
away by compiler (due to PSEH usage) by making themvolatile. See issue 
#3408 for more details.

> What?
(Continue reading)

Alex Ionescu | 1 Jul 2008 23:45
Picon

jura@...> - Prevent boolean flags from beingoptimized away by compiler (due to PSEH usage) by making themvolatile. See issue #3408 for more details.

Then gcc or PSEH should be fixed, not worked-around.

On 1-Jul-08, at 12:03 PM, Yury Sidorov wrote:

> Hi,
>
> It's corner case problem and it occurs only in these functions.
>
> Code:
>
> BOOLEAN f = FALSE;
>
> f = TRUE;
> call_some_func();
> f = FALSE;
>
> gcc optimizer removes TRUE/FALSE assignments, since it knows that f
> was FALSE before this code block and remains FALSE after. gcc knows
> nothing about exceptions and SEH and performs such optimizations
> here...
>
> Yury Sidorov.
>
> ----- Original Message -----
> From: "Alex Ionescu" <ionucu@...>
> To: <ros-dev@...>
> Sent: Tuesday, July 01, 2008 9:28 PM
> Subject: Re: [ros-dev] [ros-diffs] [fireball] 34232: Yuri
> Sidorov<jura@...> - Prevent boolean flags from beingoptimized
> away by compiler (due to PSEH usage) by making themvolatile. See issue
(Continue reading)

KJK::Hyperion | 2 Jul 2008 10:16

jura@...> - Prevent boolean flags from being optimized away by compiler (due to PSEH usage) by making them volatile. See issue #3408 for more details.

Alex Ionescu ha scritto:
> If something is happening to these flags, PSEH should be fixed -- not  
> making every flag in the source base a volatile.

PSEH is based setjmp/longjmp, some local variables WILL be reset when an 
exception is caught and they MUST be marked as "volatile". I documented 
this a long time ago
Timo Kreuzer | 2 Jul 2008 13:39
Picon

jura@...> - Prevent boolean flags from being optimized away by compiler (due to PSEH usage) by making them volatile. See issue #3408 for more details.

What about wrapping the _SEH_TRY part in a local inline function? In my tests this successfully prevented the variables from being optimized away. At least under normal optimisation settings.

_SEH_TRY
{
   void inline tryblock()
   {
   ...
   }
   tryblock();
}
...

KJK::Hyperion schrieb:
Alex Ionescu ha scritto:
If something is happening to these flags, PSEH should be fixed -- not making every flag in the source base a volatile.
PSEH is based setjmp/longjmp, some local variables WILL be reset when an exception is caught and they MUST be marked as "volatile". I documented this a long time ago _______________________________________________ Ros-dev mailing list Ros-dev-td3rRX5TIkhAfugRpC6u6w@public.gmane.org http://www.reactos.org/mailman/listinfo/ros-dev

_______________________________________________
Ros-dev mailing list
Ros-dev@...
http://www.reactos.org/mailman/listinfo/ros-dev
KJK::Hyperion | 2 Jul 2008 15:08

jura@...> - Prevent boolean flags from being optimized away by compiler (due to PSEH usage) by making them volatile. See issue #3408 for more details.

Timo Kreuzer ha scritto:
> What about wrapping the _SEH_TRY part in a local inline function? In my 
> tests this successfully prevented the variables from being optimized 
> away. At least under normal optimisation settings.

I find this a terrible, terrible idea. An unreliable side effect of an 
unspecified behavior of a non-ANSI C feature. It will break unoptimized 
builds as soon as we add support for DEP, too, because local functions 
require an executable stack. I am at a loss of words to convey how bad 
of an idea this seems to me
gedmurphy | 2 Jul 2008 17:49
Picon

Re: [ros-diffs] [dchapyshev] 34135: - Add fontext.dll

I completely agree, this needs to be clamped down on. Do we really need 78
different keyboard layouts at this point?
It's fine for the people with mega fast systems and time on their hands, but
most people don't fall into this category.

I now try to avoid building as much as possible and I suspect more people
will be following suit if the build time continues to increase.

Ged

-----Original Message-----
From: ros-dev-bounces@...
[mailto:ros-dev-bounces@...] On
Behalf Of Marc Piulachs
Sent: 28 June 2008 20:42
To: ros-dev@...
Subject: Re: [ros-dev] [ros-diffs] [dchapyshev] 34135: - Add fontext.dll

What's the point of adding all those useless stubbed dlls? It only 
contributes to increase build time

--------------------------------------------------
From: <dchapyshev@...>
Sent: Friday, June 27, 2008 7:34 PM
To: <ros-diffs@...>
Subject: [ros-diffs] [dchapyshev] 34135: - Add fontext.dll

> Author: dchapyshev
> Date: Fri Jun 27 12:34:08 2008
> New Revision: 34135
>
> URL: http://svn.reactos.org/svn/reactos?rev=34135&view=rev
> Log:
> - Add fontext.dll
>
> Added:
>    trunk/reactos/dll/shellext/fontext/
>    trunk/reactos/dll/shellext/fontext/fontext.c   (with props)
>    trunk/reactos/dll/shellext/fontext/fontext.def   (with props)
>    trunk/reactos/dll/shellext/fontext/fontext.h   (with props)
>    trunk/reactos/dll/shellext/fontext/fontext.rbuild   (with props)
>    trunk/reactos/dll/shellext/fontext/fontext.rc   (with props)
>    trunk/reactos/dll/shellext/fontext/lang/
>    trunk/reactos/dll/shellext/fontext/lang/en-US.rc   (with props)
>    trunk/reactos/dll/shellext/fontext/regsvr.c   (with props)
>    trunk/reactos/dll/shellext/fontext/resource.h   (with props)
>    trunk/reactos/dll/shellext/fontext/rsrc.rc   (with props)
> Modified:
>    trunk/reactos/dll/shellext/shellext.rbuild
>
> Added: trunk/reactos/dll/shellext/fontext/fontext.c
> URL: 
>
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/shellext/fontext/fontex
t.c?rev=34135&view=auto
>
============================================================================
==
> --- trunk/reactos/dll/shellext/fontext/fontext.c (added)
> +++ trunk/reactos/dll/shellext/fontext/fontext.c [iso-8859-1] Fri Jun 27 
> 12:34:08 2008
>  <at>  <at>  -1,0 +1,45  <at>  <at> 
> +/*
> + *
> + * PROJECT:         fontext.dll
> + * FILE:            dll/shellext/fontext/fontext.c
> + * PURPOSE:         fontext.dll
> + * PROGRAMMER:      Dmitry Chapyshev (dmitry@...)
> + * UPDATE HISTORY:
> + *      10-06-2008  Created
> + */
> +
> +#include "fontext.h"
> +
> +static HINSTANCE hInstance;
> +
> +HRESULT WINAPI
> +DllCanUnloadNow(VOID)
> +{
> +    DPRINT1("DllCanUnloadNow() stubs\n");
> +    return S_OK;
> +}
> +
> +HRESULT WINAPI
> +DllGetClassObject(REFCLSID rclsid,
> +                  REFIID riid,
> +                  LPVOID *ppv)
> +{
> +    DPRINT1("DllGetClassObject() stubs\n");
> +    return S_OK;
> +}
> +
> +BOOL STDCALL
> +DllMain(HINSTANCE hinstDLL,
> +        DWORD dwReason,
> +        LPVOID lpvReserved)
> +{
> +    switch (dwReason)
> +    {
> +        case DLL_PROCESS_ATTACH:
> +            hInstance = hinstDLL;
> +            DisableThreadLibraryCalls(hInstance);
> +            break;
> +    }
> +
> +    return TRUE;
> +}
>
> Propchange: trunk/reactos/dll/shellext/fontext/fontext.c
>
----------------------------------------------------------------------------
--
>    svn:eol-style = native
>
> Added: trunk/reactos/dll/shellext/fontext/fontext.def
> URL: 
>
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/shellext/fontext/fontex
t.def?rev=34135&view=auto
>
============================================================================
==
> --- trunk/reactos/dll/shellext/fontext/fontext.def (added)
> +++ trunk/reactos/dll/shellext/fontext/fontext.def [iso-8859-1] Fri Jun 27

> 12:34:08 2008
>  <at>  <at>  -1,0 +1,6  <at>  <at> 
> +LIBRARY fontext.dll
> +EXPORTS
> +DllCanUnloadNow
> +DllGetClassObject
> +DllRegisterServer
> +DllUnregisterServer
>
> Propchange: trunk/reactos/dll/shellext/fontext/fontext.def
>
----------------------------------------------------------------------------
--
>    svn:eol-style = native
>
> Added: trunk/reactos/dll/shellext/fontext/fontext.h
> URL: 
>
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/shellext/fontext/fontex
t.h?rev=34135&view=auto
>
============================================================================
==
> --- trunk/reactos/dll/shellext/fontext/fontext.h (added)
> +++ trunk/reactos/dll/shellext/fontext/fontext.h [iso-8859-1] Fri Jun 27 
> 12:34:08 2008
>  <at>  <at>  -1,0 +1,12  <at>  <at> 
> +#ifndef __FONTEXT__H
> +#define __FONTEXT__H
> +
> +#define COBJMACROS
> +#include <windows.h>
> +#include <tchar.h>
> +#include <stdio.h>
> +#include <shlobj.h>
> +
> +#include <debug.h>
> +
> +#endif /* __FONTEXT__H */
>
> Propchange: trunk/reactos/dll/shellext/fontext/fontext.h
>
----------------------------------------------------------------------------
--
>    svn:eol-style = native
>
> Added: trunk/reactos/dll/shellext/fontext/fontext.rbuild
> URL: 
>
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/shellext/fontext/fontex
t.rbuild?rev=34135&view=auto
>
============================================================================
==
> --- trunk/reactos/dll/shellext/fontext/fontext.rbuild (added)
> +++ trunk/reactos/dll/shellext/fontext/fontext.rbuild [iso-8859-1] Fri Jun

> 27 12:34:08 2008
>  <at>  <at>  -1,0 +1,21  <at>  <at> 
> +<module name="fontext" type="win32dll" 
> baseaddress="${BASEADDRESS_FONTEXT}" installbase="system32" 
> installname="fontext.dll" unicode="yes">
> + <importlibrary definition="fontext.def" />
> + <include base="fontext">.</include>
> + <define name="_WIN32_IE">0x0500</define>
> + <define name="_WIN32_WINNT">0x0600</define>
> + <define name="WINVER">0x0600</define>
> + <library>ntdll</library>
> + <library>kernel32</library>
> + <library>user32</library>
> + <library>gdi32</library>
> + <library>ole32</library>
> + <library>uuid</library>
> + <library>msvcrt</library>
> + <library>shlwapi</library>
> + <library>lz32</library>
> + <library>advapi32</library>
> + <library>setupapi</library>
> + <file>fontext.c</file>
> + <file>regsvr.c</file>
> + <file>fontext.rc</file>
> +</module>
>
> Propchange: trunk/reactos/dll/shellext/fontext/fontext.rbuild
>
----------------------------------------------------------------------------
--
>    svn:eol-style = native
>
> Added: trunk/reactos/dll/shellext/fontext/fontext.rc
> URL: 
>
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/shellext/fontext/fontex
t.rc?rev=34135&view=auto
>
============================================================================
==
> --- trunk/reactos/dll/shellext/fontext/fontext.rc (added)
> +++ trunk/reactos/dll/shellext/fontext/fontext.rc [iso-8859-1] Fri Jun 27 
> 12:34:08 2008
>  <at>  <at>  -1,0 +1,10  <at>  <at> 
> +#include <windows.h>
> +#include "resource.h"
> +
> +#define REACTOS_VERSION_DLL
> +#define REACTOS_STR_FILE_DESCRIPTION "ReactOS Font Folder\0"
> +#define REACTOS_STR_INTERNAL_NAME "fontext\0"
> +#define REACTOS_STR_ORIGINAL_FILENAME "fontext.dll\0"
> +#include <reactos/version.rc>
> +
> +#include "rsrc.rc"
>
> Propchange: trunk/reactos/dll/shellext/fontext/fontext.rc
>
----------------------------------------------------------------------------
--
>    svn:eol-style = native
>
> Added: trunk/reactos/dll/shellext/fontext/lang/en-US.rc
> URL: 
>
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/shellext/fontext/lang/e
n-US.rc?rev=34135&view=auto
>
============================================================================
==
> --- trunk/reactos/dll/shellext/fontext/lang/en-US.rc (added)
> +++ trunk/reactos/dll/shellext/fontext/lang/en-US.rc [iso-8859-1] Fri Jun 
> 27 12:34:08 2008
>  <at>  <at>  -1,0 +1,9  <at>  <at> 
> +// Don't translate this file at current time
> +
> +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
> +
> +STRINGTABLE
> +BEGIN
> +    IDS_REACTOS_FONTS_FOLDER "ReactOS Font Folder"
> +END
> +
>
> Propchange: trunk/reactos/dll/shellext/fontext/lang/en-US.rc
>
----------------------------------------------------------------------------
--
>    svn:eol-style = native
>
> Added: trunk/reactos/dll/shellext/fontext/regsvr.c
> URL: 
>
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/shellext/fontext/regsvr
.c?rev=34135&view=auto
>
============================================================================
==
> --- trunk/reactos/dll/shellext/fontext/regsvr.c (added)
> +++ trunk/reactos/dll/shellext/fontext/regsvr.c [iso-8859-1] Fri Jun 27 
> 12:34:08 2008
>  <at>  <at>  -1,0 +1,38  <at>  <at> 
> +/*
> + *
> + * PROJECT:         fontext.dll
> + * FILE:            dll/shellext/fontext/regsvr.c
> + * PURPOSE:         fontext.dll
> + * PROGRAMMER:      Dmitry Chapyshev (dmitry@...)
> + * UPDATE HISTORY:
> + *      10-06-2008  Created
> + */
> +
> +#include <windows.h>
> +#include <ole2.h>
> +
> +#include <fontext.h>
> +
> +static HRESULT
> +REGSVR_RegisterServer()
> +{
> +    return S_OK;
> +}
> +
> +static HRESULT
> +REGSVR_UnregisterServer()
> +{
> +    return S_OK;
> +}
> +
> +HRESULT WINAPI
> +DllRegisterServer(VOID)
> +{
> +    return REGSVR_RegisterServer();
> +}
> +
> +HRESULT WINAPI
> +DllUnregisterServer(VOID)
> +{
> +    return REGSVR_UnregisterServer();
> +}
>
> Propchange: trunk/reactos/dll/shellext/fontext/regsvr.c
>
----------------------------------------------------------------------------
--
>    svn:eol-style = native
>
> Added: trunk/reactos/dll/shellext/fontext/resource.h
> URL: 
>
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/shellext/fontext/resour
ce.h?rev=34135&view=auto
>
============================================================================
==
> --- trunk/reactos/dll/shellext/fontext/resource.h (added)
> +++ trunk/reactos/dll/shellext/fontext/resource.h [iso-8859-1] Fri Jun 27 
> 12:34:08 2008
>  <at>  <at>  -1,0 +1,6  <at>  <at> 
> +#ifndef __RESOURCE__H
> +#define __RESOURCE__H
> +
> +#define IDS_REACTOS_FONTS_FOLDER 151
> +
> +#endif /* __RESOURCE__H */
>
> Propchange: trunk/reactos/dll/shellext/fontext/resource.h
>
----------------------------------------------------------------------------
--
>    svn:eol-style = native
>
> Added: trunk/reactos/dll/shellext/fontext/rsrc.rc
> URL: 
>
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/shellext/fontext/rsrc.r
c?rev=34135&view=auto
>
============================================================================
==
> --- trunk/reactos/dll/shellext/fontext/rsrc.rc (added)
> +++ trunk/reactos/dll/shellext/fontext/rsrc.rc [iso-8859-1] Fri Jun 27 
> 12:34:08 2008
>  <at>  <at>  -1,0 +1,4  <at>  <at> 
> +#include <windows.h>
> +#include "resource.h"
> +
> +#include "lang/en-US.rc"
>
> Propchange: trunk/reactos/dll/shellext/fontext/rsrc.rc
>
----------------------------------------------------------------------------
--
>    svn:eol-style = native
>
> Modified: trunk/reactos/dll/shellext/shellext.rbuild
> URL: 
>
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/shellext/shellext.rbuil
d?rev=34135&r1=34134&r2=34135&view=diff
>
============================================================================
==
> --- trunk/reactos/dll/shellext/shellext.rbuild [iso-8859-1] (original)
> +++ trunk/reactos/dll/shellext/shellext.rbuild [iso-8859-1] Fri Jun 27 
> 12:34:08 2008
>  <at>  <at>  -10,6 +10,9  <at>  <at> 
>  <directory name="devcpux">
>  <xi:include href="devcpux/devcpux.rbuild" />
>  </directory>
> + <directory name="fontext">
> + <xi:include href="fontext/fontext.rbuild" />
> + </directory>
>  <directory name="slayer">
>  <xi:include href="slayer/slayer.rbuild" />
>  </directory>
>
> 
_______________________________________________
Ros-dev mailing list
Ros-dev@...
http://www.reactos.org/mailman/listinfo/ros-dev
Steven Edwards | 2 Jul 2008 21:06
Picon

Re: [ros-diffs] [dchapyshev] 34135: - Add fontext.dll

On Wed, Jul 2, 2008 at 11:49 AM, gedmurphy <gedmurphy@...> wrote:
> I now try to avoid building as much as possible and I suspect more people
> will be following suit if the build time continues to increase.

We could develop a lean target that only builds the bare apps and
libraries required.

--

-- 
Steven Edwards

"There is one thing stronger than all the armies in the world, and
that is an idea whose time has come." - Victor Hugo

Gmane