You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openoffice.apache.org by Damjan Jovanovic <da...@apache.org> on 2016/08/07 19:59:42 UTC

branches/gbuild-reintegration merged

Hi

branches/gbuild-reintegration has been merged to trunk. It has > 136
patches and makes many changes throughout the code, so you probably need to
"dmake clean" before rebuilding.

I haven't fixed the Windows build performance regression caused by issue
#117845, so if you're building on Windows use --disable-pch which only
extends your build time by around 2 hours instead of 6. If you aren't happy
with this, please help me figure out the problem.

Damjan

Re: branches/gbuild-reintegration merged

Posted by Patricia Shanahan <pa...@acm.org>.
On 8/7/2016 2:30 PM, Kay Schenk wrote:
> On Sun, Aug 7, 2016 at 12:59 PM, Damjan Jovanovic <da...@apache.org> wrote:
>
>> Hi
>>
>> branches/gbuild-reintegration has been merged to trunk. It has > 136
>> patches and makes many changes throughout the code, so you probably need to
>> "dmake clean" before rebuilding.
>>
>> I haven't fixed the Windows build performance regression caused by issue
>> #117845, so if you're building on Windows use --disable-pch which only
>> extends your build time by around 2 hours instead of 6. If you aren't happy
>> with this, please help me figure out the problem.
>>
>> Damjan
>>
>
> \u200bThank you, Damjan! Any pointers on how to use the gbuild process for those
> not familiar with it?\u200b
>
>

Preferably, update the step-by-step instructions with any changes.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@openoffice.apache.org
For additional commands, e-mail: dev-help@openoffice.apache.org


Re: branches/gbuild-reintegration merged

Posted by Damjan Jovanovic <da...@apache.org>.
On Sun, Aug 7, 2016 at 11:30 PM, Kay Schenk <ka...@gmail.com> wrote:

> On Sun, Aug 7, 2016 at 12:59 PM, Damjan Jovanovic <da...@apache.org>
> wrote:
>
> > Hi
> >
> > branches/gbuild-reintegration has been merged to trunk. It has > 136
> > patches and makes many changes throughout the code, so you probably need
> to
> > "dmake clean" before rebuilding.
> >
> > I haven't fixed the Windows build performance regression caused by issue
> > #117845, so if you're building on Windows use --disable-pch which only
> > extends your build time by around 2 hours instead of 6. If you aren't
> happy
> > with this, please help me figure out the problem.
> >
> > Damjan
> >
>
> ​Thank you, Damjan! Any pointers on how to use the gbuild process for those
> not familiar with it?​
>
>
There are no build process changes. Everything works like before; gbuild
modules are still a minority.

Re: branches/gbuild-reintegration merged

Posted by Kay Schenk <ka...@gmail.com>.
On Sun, Aug 7, 2016 at 12:59 PM, Damjan Jovanovic <da...@apache.org> wrote:

> Hi
>
> branches/gbuild-reintegration has been merged to trunk. It has > 136
> patches and makes many changes throughout the code, so you probably need to
> "dmake clean" before rebuilding.
>
> I haven't fixed the Windows build performance regression caused by issue
> #117845, so if you're building on Windows use --disable-pch which only
> extends your build time by around 2 hours instead of 6. If you aren't happy
> with this, please help me figure out the problem.
>
> Damjan
>

​Thank you, Damjan! Any pointers on how to use the gbuild process for those
not familiar with it?​


-- 
----------------------------------------------------------------------
MzK

"Time spent with cats is never wasted."
                                -- Sigmund Freud

Re: branches/gbuild-reintegration merged

Posted by Damjan Jovanovic <da...@apache.org>.
On Sat, Aug 27, 2016 at 8:26 PM, Don Lewis <tr...@apache.org> wrote:

> On 17 Aug, To: dev@openoffice.apache.org wrote:
> > On 16 Aug, Don Lewis wrote:
> >> On  7 Aug, Damjan Jovanovic wrote:
> >>> Hi
> >>>
> >>> branches/gbuild-reintegration has been merged to trunk. It has > 136
> >>> patches and makes many changes throughout the code, so you probably
> need to
> >>> "dmake clean" before rebuilding.
> >>>
> >>> I haven't fixed the Windows build performance regression caused by
> issue
> >>> #117845, so if you're building on Windows use --disable-pch which only
> >>> extends your build time by around 2 hours instead of 6. If you aren't
> happy
> >>> with this, please help me figure out the problem.
> >>
> >> I did some sleuthing ...
> >>
> >> I compared build logs between --enable-pch and --disable-pch builds. The
> >> compiler command line for the --enable-pch build has the additional
> >> option
> >>      -DPRECOMPILED_HEADERS
> >> which causes precompiled_foo.hxx to pull in a whole wad of headers even
> >> if they aren't needed to compile an individual .cxx file.  That's why
> >> the build is taking longer.  A precompiled version of
> >> precompiled_foo.hxx is build beforehand by passing
> >> -Ycprecompiled_foo.hxx to the compiler, but gbuild neglects to tell the
> >> compiler to use it when building all the .cxx files because it never
> >> passes -Yuprecompiled_foo.hxx to the compiler.
> >>
> >> That option is supposed to come from
> >> gb_PrecompiledHeader_get_enableflags or
> >> gb_NoexPrecompiledHeader_get_enableflags in LinkTarget.mk, but for some
> >> reason that isn't getting activated.
> >>
> >> I don't see any obvious recent changes that might have broken this.
> >
> > More digging ...
> >
> > LinkTarget.mk contains some logic to that only enables the use of
> > precompiled headers when the compiler flags that were used to build the
> > precompiled header match the flags used to compile the target source
> > file.  If I compare the compiler flags used to build the precompiled
> > header with the flags used to compile one of the source files, I see
> > these differences:
> >
> > @@ -33,7 +33,6 @@
> >  -D_DLL_
> >  -DPRECOMPILED_HEADERS
> >  -DSW_DLLIMPLEMENTATION
> > --DSW_DLLIMPLEMENTATION
> >  -Gd
> >  -GR
> >  -Gs
> > @@ -78,13 +77,13 @@
> >  -wd4826
> >  -Zc:wchar_t-
> >  -Zm500
> > +-DEXCEPTIONS_ON
> > +-EHa
> >  -Ob1
> >  -Oxs
> >  -Oy-
> > --DEXCEPTIONS_ON
> > --EHa
> > --Fd$W/LinkTarget/pdb/Library/isw.lib.pdb
> > --I$S/sw/inc/pch/
> > +-Fd
> > +-I$S/sw/source/core/access/
> >  -IC:/aoo/aoo-trunk/main/solver/420/wntmsci12.pro/inc/stl
> >  -I$S/sw/source/core/inc
> >  -I$S/sw/source/filter/inc
> > @@ -108,7 +107,5 @@
> >  -I$O/inc/udkapi
> >  -I$O/inc/offapi
> >  -c
> > -$S/sw/inc/pch/precompiled_sw.cxx
> > --Ycprecompiled_sw.hxx
> > --Fp$W/PrecompiledHeader/nodebug/precompiled_sw.hxx.pch
> > --Fo$W/PrecompiledHeader/nodebug/precompiled_sw.hxx.pch.obj
> > +$S/sw/source/core/access/acccell.cxx
> > +-Fo$W/CxxObject/sw/source/core/access/acccell.o
> >
> > The potentially important differences are:
> >
> >   * When building the precompiled header, -DSW_DLLIMPLEMENTATION is
> >     repeated
> >
> >   * These flags are used when building the precompiled header:
> >     -Fd$W/LinkTarget/pdb/Library/isw.lib.pdb -I$S/sw/inc/pch/
> >     whereas these flags are used when building the target:
> >     -Fd -I$S/sw/source/core/access/
> >
> > Another observation is that if an override of the compiler flags for
> > a particular target disables the use of precompiled headers, then
> > -DPRECOMPILED_HEADERS should not be passed to the compiler if -Yu is
> > not.  That would avoid the pessimization of including all of those extra
> > headers that are not used.
>
> The answer turns out to be none of the above.  I didn't find the cause
> for the duplication of -DSW_DLLIMPLEMENTATION, but it doesn't matter
> because the duplicate is squashed by the comparison which uses
> $(sort ...).  I don't think the latter difference is part of the
> comparison.
>
> The cause turns out to be that $(PCH_NAME) is not inherited by the
> compile, so the -Yu compile flag is not used.  I've fixed this in
> r1758061.
>
> Doing "build --all -P2 -- -P2" on a two-core machine now takes:
>         377 minutes with --disable-pch
>         278 minutes with --enable-pch
>
>
Fantastic work Don, thank you so much!

Damjan

Re: branches/gbuild-reintegration merged

Posted by Don Lewis <tr...@apache.org>.
On 17 Aug, To: dev@openoffice.apache.org wrote:
> On 16 Aug, Don Lewis wrote:
>> On  7 Aug, Damjan Jovanovic wrote:
>>> Hi
>>> 
>>> branches/gbuild-reintegration has been merged to trunk. It has > 136
>>> patches and makes many changes throughout the code, so you probably need to
>>> "dmake clean" before rebuilding.
>>> 
>>> I haven't fixed the Windows build performance regression caused by issue
>>> #117845, so if you're building on Windows use --disable-pch which only
>>> extends your build time by around 2 hours instead of 6. If you aren't happy
>>> with this, please help me figure out the problem.
>> 
>> I did some sleuthing ...
>> 
>> I compared build logs between --enable-pch and --disable-pch builds. The
>> compiler command line for the --enable-pch build has the additional
>> option
>> 	-DPRECOMPILED_HEADERS
>> which causes precompiled_foo.hxx to pull in a whole wad of headers even
>> if they aren't needed to compile an individual .cxx file.  That's why
>> the build is taking longer.  A precompiled version of
>> precompiled_foo.hxx is build beforehand by passing
>> -Ycprecompiled_foo.hxx to the compiler, but gbuild neglects to tell the
>> compiler to use it when building all the .cxx files because it never
>> passes -Yuprecompiled_foo.hxx to the compiler.
>> 
>> That option is supposed to come from
>> gb_PrecompiledHeader_get_enableflags or
>> gb_NoexPrecompiledHeader_get_enableflags in LinkTarget.mk, but for some
>> reason that isn't getting activated.
>> 
>> I don't see any obvious recent changes that might have broken this.
> 
> More digging ...
> 
> LinkTarget.mk contains some logic to that only enables the use of
> precompiled headers when the compiler flags that were used to build the
> precompiled header match the flags used to compile the target source
> file.  If I compare the compiler flags used to build the precompiled
> header with the flags used to compile one of the source files, I see
> these differences:
> 
> @@ -33,7 +33,6 @@
>  -D_DLL_
>  -DPRECOMPILED_HEADERS
>  -DSW_DLLIMPLEMENTATION
> --DSW_DLLIMPLEMENTATION
>  -Gd
>  -GR
>  -Gs
> @@ -78,13 +77,13 @@
>  -wd4826
>  -Zc:wchar_t-
>  -Zm500
> +-DEXCEPTIONS_ON
> +-EHa
>  -Ob1
>  -Oxs
>  -Oy-
> --DEXCEPTIONS_ON
> --EHa
> --Fd$W/LinkTarget/pdb/Library/isw.lib.pdb
> --I$S/sw/inc/pch/
> +-Fd
> +-I$S/sw/source/core/access/
>  -IC:/aoo/aoo-trunk/main/solver/420/wntmsci12.pro/inc/stl
>  -I$S/sw/source/core/inc
>  -I$S/sw/source/filter/inc
> @@ -108,7 +107,5 @@
>  -I$O/inc/udkapi
>  -I$O/inc/offapi
>  -c
> -$S/sw/inc/pch/precompiled_sw.cxx
> --Ycprecompiled_sw.hxx
> --Fp$W/PrecompiledHeader/nodebug/precompiled_sw.hxx.pch
> --Fo$W/PrecompiledHeader/nodebug/precompiled_sw.hxx.pch.obj
> +$S/sw/source/core/access/acccell.cxx
> +-Fo$W/CxxObject/sw/source/core/access/acccell.o
> 
> The potentially important differences are:
> 
>   * When building the precompiled header, -DSW_DLLIMPLEMENTATION is
>     repeated
> 
>   * These flags are used when building the precompiled header:
>     -Fd$W/LinkTarget/pdb/Library/isw.lib.pdb -I$S/sw/inc/pch/
>     whereas these flags are used when building the target:
>     -Fd -I$S/sw/source/core/access/
> 
> Another observation is that if an override of the compiler flags for
> a particular target disables the use of precompiled headers, then
> -DPRECOMPILED_HEADERS should not be passed to the compiler if -Yu is
> not.  That would avoid the pessimization of including all of those extra
> headers that are not used.

The answer turns out to be none of the above.  I didn't find the cause
for the duplication of -DSW_DLLIMPLEMENTATION, but it doesn't matter
because the duplicate is squashed by the comparison which uses
$(sort ...).  I don't think the latter difference is part of the
comparison.

The cause turns out to be that $(PCH_NAME) is not inherited by the
compile, so the -Yu compile flag is not used.  I've fixed this in
r1758061.

Doing "build --all -P2 -- -P2" on a two-core machine now takes:
	377 minutes with --disable-pch
	278 minutes with --enable-pch


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@openoffice.apache.org
For additional commands, e-mail: dev-help@openoffice.apache.org


Re: branches/gbuild-reintegration merged

Posted by Don Lewis <tr...@apache.org>.
On 16 Aug, Don Lewis wrote:
> On  7 Aug, Damjan Jovanovic wrote:
>> Hi
>> 
>> branches/gbuild-reintegration has been merged to trunk. It has > 136
>> patches and makes many changes throughout the code, so you probably need to
>> "dmake clean" before rebuilding.
>> 
>> I haven't fixed the Windows build performance regression caused by issue
>> #117845, so if you're building on Windows use --disable-pch which only
>> extends your build time by around 2 hours instead of 6. If you aren't happy
>> with this, please help me figure out the problem.
> 
> I did some sleuthing ...
> 
> I compared build logs between --enable-pch and --disable-pch builds. The
> compiler command line for the --enable-pch build has the additional
> option
> 	-DPRECOMPILED_HEADERS
> which causes precompiled_foo.hxx to pull in a whole wad of headers even
> if they aren't needed to compile an individual .cxx file.  That's why
> the build is taking longer.  A precompiled version of
> precompiled_foo.hxx is build beforehand by passing
> -Ycprecompiled_foo.hxx to the compiler, but gbuild neglects to tell the
> compiler to use it when building all the .cxx files because it never
> passes -Yuprecompiled_foo.hxx to the compiler.
> 
> That option is supposed to come from
> gb_PrecompiledHeader_get_enableflags or
> gb_NoexPrecompiledHeader_get_enableflags in LinkTarget.mk, but for some
> reason that isn't getting activated.
> 
> I don't see any obvious recent changes that might have broken this.

More digging ...

LinkTarget.mk contains some logic to that only enables the use of
precompiled headers when the compiler flags that were used to build the
precompiled header match the flags used to compile the target source
file.  If I compare the compiler flags used to build the precompiled
header with the flags used to compile one of the source files, I see
these differences:

@@ -33,7 +33,6 @@
 -D_DLL_
 -DPRECOMPILED_HEADERS
 -DSW_DLLIMPLEMENTATION
--DSW_DLLIMPLEMENTATION
 -Gd
 -GR
 -Gs
@@ -78,13 +77,13 @@
 -wd4826
 -Zc:wchar_t-
 -Zm500
+-DEXCEPTIONS_ON
+-EHa
 -Ob1
 -Oxs
 -Oy-
--DEXCEPTIONS_ON
--EHa
--Fd$W/LinkTarget/pdb/Library/isw.lib.pdb
--I$S/sw/inc/pch/
+-Fd
+-I$S/sw/source/core/access/
 -IC:/aoo/aoo-trunk/main/solver/420/wntmsci12.pro/inc/stl
 -I$S/sw/source/core/inc
 -I$S/sw/source/filter/inc
@@ -108,7 +107,5 @@
 -I$O/inc/udkapi
 -I$O/inc/offapi
 -c
-$S/sw/inc/pch/precompiled_sw.cxx
--Ycprecompiled_sw.hxx
--Fp$W/PrecompiledHeader/nodebug/precompiled_sw.hxx.pch
--Fo$W/PrecompiledHeader/nodebug/precompiled_sw.hxx.pch.obj
+$S/sw/source/core/access/acccell.cxx
+-Fo$W/CxxObject/sw/source/core/access/acccell.o

The potentially important differences are:

  * When building the precompiled header, -DSW_DLLIMPLEMENTATION is
    repeated

  * These flags are used when building the precompiled header:
    -Fd$W/LinkTarget/pdb/Library/isw.lib.pdb -I$S/sw/inc/pch/
    whereas these flags are used when building the target:
    -Fd -I$S/sw/source/core/access/

Another observation is that if an override of the compiler flags for
a particular target disables the use of precompiled headers, then
-DPRECOMPILED_HEADERS should not be passed to the compiler if -Yu is
not.  That would avoid the pessimization of including all of those extra
headers that are not used.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@openoffice.apache.org
For additional commands, e-mail: dev-help@openoffice.apache.org


Re: branches/gbuild-reintegration merged

Posted by Don Lewis <tr...@apache.org>.
On  7 Aug, Damjan Jovanovic wrote:
> Hi
> 
> branches/gbuild-reintegration has been merged to trunk. It has > 136
> patches and makes many changes throughout the code, so you probably need to
> "dmake clean" before rebuilding.
> 
> I haven't fixed the Windows build performance regression caused by issue
> #117845, so if you're building on Windows use --disable-pch which only
> extends your build time by around 2 hours instead of 6. If you aren't happy
> with this, please help me figure out the problem.

I did some sleuthing ...

I compared build logs between --enable-pch and --disable-pch builds. The
compiler command line for the --enable-pch build has the additional
option
	-DPRECOMPILED_HEADERS
which causes precompiled_foo.hxx to pull in a whole wad of headers even
if they aren't needed to compile an individual .cxx file.  That's why
the build is taking longer.  A precompiled version of
precompiled_foo.hxx is build beforehand by passing
-Ycprecompiled_foo.hxx to the compiler, but gbuild neglects to tell the
compiler to use it when building all the .cxx files because it never
passes -Yuprecompiled_foo.hxx to the compiler.

That option is supposed to come from
gb_PrecompiledHeader_get_enableflags or
gb_NoexPrecompiledHeader_get_enableflags in LinkTarget.mk, but for some
reason that isn't getting activated.

I don't see any obvious recent changes that might have broken this.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@openoffice.apache.org
For additional commands, e-mail: dev-help@openoffice.apache.org