ooo-build r11621 - in trunk: . bin doc patches/src680 patches/test



Author: michael
Date: Mon Feb 18 16:57:59 2008
New Revision: 11621
URL: http://svn.gnome.org/viewvc/ooo-build?rev=11621&view=rev

Log:
2008-02-18  Michael Meeks  <michael meeks novell com>

        * patches/test/built-in-unit-test.diff: 1st pass at
        registering components on deliver.



Added:
   trunk/patches/test/built-in-unit-test.diff
Modified:
   trunk/ChangeLog
   trunk/bin/relocstat
   trunk/doc/README
   trunk/doc/link.txt
   trunk/patches/src680/apply

Modified: trunk/bin/relocstat
==============================================================================
--- trunk/bin/relocstat	(original)
+++ trunk/bin/relocstat	Mon Feb 18 16:57:59 2008
@@ -546,6 +546,7 @@
 	    '\.dynsym' => 'linking',
 	    '\.dynstr' => 'linking',
 	    '\.rel\.plt' => 'linking',
+	    '\.suse\.vtrelocs' => 'linking',
 	    '\.plt' => 'linking',
 	    '\.got' => 'linking',
 	    '\.got\.plt' => 'linking',

Modified: trunk/doc/README
==============================================================================
--- trunk/doc/README	(original)
+++ trunk/doc/README	Mon Feb 18 16:57:59 2008
@@ -6,4 +6,7 @@
 cuckooo.txt:           outline notes on this, & Java samples.
 layout-overview.txt:   notes on adding layout to VCL
 print-integration.txt: notes on printing integration.
+...
 
+This lives at:
+	http://svn.gnome.org/svn/ooo-build/trunk/doc/
\ No newline at end of file

Modified: trunk/doc/link.txt
==============================================================================
--- trunk/doc/link.txt	(original)
+++ trunk/doc/link.txt	Mon Feb 18 16:57:59 2008
@@ -1575,8 +1575,8 @@
 	.long	-559026176
 	.long	-559026176
 	.long	-559026176
-	.long	_ZThn16_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE8getTypesEv
-	.long	_ZThn16_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE19getImplementationIdEv
+	.long	-559026176
+	.long	-559026176
 	.long	-20
 	.long	_ZTI18SvxXMLXTableImport
 	.long	-559026176
@@ -1590,19 +1590,19 @@
 	.long	-559026176
 	.long	-559026176
 	.long	-559026176
-	.long	_ZThn20_N11SvXMLImport10startCDATAEv
-	.long	_ZThn20_N11SvXMLImport8endCDATAEv
-	.long	_ZThn20_N11SvXMLImport7commentERKN3rtl8OUStringE
-	.long	_ZThn20_N11SvXMLImport14allowLineBreakEv
-	.long	_ZThn20_N11SvXMLImport7unknownERKN3rtl8OUStringE
+	.long	-559026176
+	.long	-559026176
+	.long	-559026176
+	.long	-559026176
+	.long	-559026176
 	.long	-24
 	.long	_ZTI18SvxXMLXTableImport
 	.long	-559026176
 	.long	-559026176
 	.long	-559026176
-	.long	_ZThn24_N11SvXMLImport21getImplementationNameEv
-	.long	_ZThn24_N11SvXMLImport15supportsServiceERKN3rtl8OUStringE
-	.long	_ZThn24_N11SvXMLImport24getSupportedServiceNamesEv
+	.long	-559026176
+	.long	-559026176
+	.long	-559026176
 	.long	-28
 	.long	_ZTI18SvxXMLXTableImport
 	.long	-559026176
@@ -2717,3 +2717,283 @@
 			+ and a ton of symbols and size etc.
 
 		+ 911 - 'sHTML' relocations as well [!]
+
+
+** FIXME:
+	+ construction vtables:
+		+ need a regression test
+		+ ensure the vtrelocs refer to the right symbol
+			+ (they do not !) ;-)
+
+michael linux:/opt/OpenOffice/HEAD/build/ooh680-m3/svtools/source/contnr> MOREDEBUG=1 g++  -fmessage-length=0 -S -Os -fno-strict-aliasing   -fvisibility=hidden -I.  -I../../unxlngi6.pro/inc/svcontnr -I../inc -I../../inc/pch -I../../inc -I../../unx/inc -I../../unxlngi6.pro/inc -I. -I/home/opt/OpenOffice/HEAD/build/ooh680-m3/solver/680/unxlngi6.pro/inc/stl -I/home/opt/OpenOffice/HEAD/build/ooh680-m3/solver/680/unxlngi6.pro/inc/external -I/home/opt/OpenOffice/HEAD/build/ooh680-m3/solver/680/unxlngi6.pro/inc -I/home/opt/OpenOffice/HEAD/build/ooh680-m3/solenv/unxlngi6/inc -I/home/opt/OpenOffice/HEAD/build/ooh680-m3/solenv/inc -I/home/opt/OpenOffice/HEAD/build/ooh680-m3/res -I/home/opt/OpenOffice/HEAD/build/ooh680-m3/solver/680/unxlngi6.pro/inc/stl -I/home/opt/OpenOffice/HEAD/build/ooh680-m3/solenv/inc/Xp31 -I/usr/lib/jvm/java/include -I/usr/lib/jvm/java/include/linux -I/usr/lib/jvm/java/include/native_threads/include -I/usr/include     -I/home/opt/OpenOffice/HEAD/build/ooh680-m3/
 solver/680/unxlngi6.pro/inc/offuh -I. -I../../res -I. -pipe -mtune=pentiumpro -fvisibility-inlines-hidden -Wall -Wextra -Wendif-labels -Wshadow -Wno-ctor-dtor-privacy     -Wno-non-virtual-dtor   -fpic -DLINUX -DUNX -DVCL -DGCC -DC341 -DINTEL -DCVER=C341 -DNPTL -DGLIBC=2 -DX86 -D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=400 -DHAVE_GCC_VISIBILITY_FEATURE -D__DMAKE -DUNIX -DCPPU_ENV=gcc3 -DGXX_INCLUDE_PATH=/home/opt/gcc/bin/../lib/gcc/i686-pc-linux-gnu/4.2.1/../../../../include/c++/4.2.1 -DSUPD=680 -DPRODUCT -DNDEBUG -DPRODUCT_FULL -DOSL_DEBUG_LEVEL=0 -DOPTIMIZE -DGSTREAMER -DCUI -DSOLAR_JAVA -DOOH680=OOH680   -DSVT_DLLIMPLEMENTATION -DSHAREDLIB -D_DLL_   -fexceptions -fno-enforce-eh-specs -DEXCEPTIONS_ON  -o /tmp/fileview.s /home/opt/OpenOffice/HEAD/build/ooh680-m3/svtools/source/contnr/fileview.cxx >& /tmp/fileview.s.output
+michael linux:/opt/OpenOffice/HEAD/build/ooh680-m3/svtools/source/contnr> c++filt _ZTv0_n12_N3vos6OTimerD1Ev
+virtual thunk to vos::OTimer::~OTimer()
+michael linux:/opt/OpenOffice/HEAD/build/ooh680-m3/svtools/source/contnr> c++filt _ZTCN105_GLOBAL__N__home_opt_OpenOffice_HEAD_build_ooh680_m3_svtools_source_contnr_fileview.cxx_00000000_BCEF14CA13CallbackTimerE0_N3vos6OTimerE:
+_ZTCN105_GLOBAL__N__home_opt_OpenOffice_HEAD_build_ooh680_m3_svtools_source_contnr_fileview.cxx_00000000_BCEF14CA13CallbackTimerE0_N3vos6OTimerE:
+michael linux:/opt/OpenOffice/HEAD/build/ooh680-m3/svtools/source/contnr> c++filt _ZTVN105_GLOBAL__N__home_opt_OpenOffice_HEAD_build_ooh680_m3_svtools_source_contnr_fileview.cxx_00000000_BCEF14CA13CallbackTimerE:
+_ZTVN105_GLOBAL__N__home_opt_OpenOffice_HEAD_build_ooh680_m3_svtools_source_contnr_fileview.cxx_00000000_BCEF14CA13CallbackTimerE:
+michael linux:/opt/OpenOffice/HEAD/build/ooh680-m3/svtools/source/contnr> c++filt _ZTVN105_GLOBAL__N__home_opt_OpenOffice_HEAD_build_ooh680_m3_svtools_source_contnr_fileview.cxx_00000000_BCEF14CA13CallbackTimerE 
+vtable for (anonymous namespace)::CallbackTimer
+michael linux:/opt/OpenOffice/HEAD/build/ooh680-m3/svtools/source/contnr> c++filt _ZTCN105_GLOBAL__N__home_opt_OpenOffice_HEAD_build_ooh680_m3_svtools_source_contnr_fileview.cxx_00000000_BCEF14CA13CallbackTimerE0_N3vos6OTimerE 
+construction vtable for vos::OTimer-in-(anonymous namespace)::CallbackTimer
+
+
+
+../unxlngi6.pro/slo/basdoc.o:(.data.rel.ro._ZTC13BasicDocShell48_9SotObject[vtable
+for BasicDocShell]+0x74): undefined reference to `virtual thunk to
+SotObject::~SotObject()'
+
+Basically bogus: ... :-)
+
+Constr VTable for SotObject-in-BasicDocShell
+	0     0u
+	1     0u
+	2     0u
+	3     0u
+	4     0u
+	5     0u
+	6     0u
+	7     0u
+	8     0u
+	9     0u
+	10    16u
+	11    (int (*)(...))0
+	12    (int (*)(...))(& _ZTI9SotObject)
+	13    SotObject::~SotObject
+	14    SotObject::~SotObject
+	15    SotObject::Close
+	16    SotObject::GetSvFactory
+	17    SotObject::Cast
+	18    SotObject::TestObjRef
+	19    SotObject::TestInvariant
+	20    SotObject::GetInterface
+	21    SotObject::QueryDelete
+	22    SotObject::CreateAggObj
+	23    SotObject::FuzzyLock
+	24    -16u
+	25    -16u
+	26    (int (*)(...))-0x000000010
+	27    (int (*)(...))(& _ZTI9SotObject)
+	28    SotObject::_ZTv0_n12_N9SotObjectD1Ev
+	29    SotObject::_ZTv0_n12_N9SotObjectD0Ev
+	30    SotObject::_ZTv0_n16_N9SotObject11QueryDeleteEv
+Inherited from:
+VTable for SfxObjectShell
+	0     60u
+	1     44u
+	2     (int (*)(...))0
+	3     (int (*)(...))(& _ZTI14SfxObjectShell)
+	4     SfxBroadcaster::ListenersGone
+	5     SfxObjectShell::Type
+	6     SfxObjectShell::IsA
+	7     SfxObjectShell::~SfxObjectShell
+	8     SfxObjectShell::~SfxObjectShell
+	9     SfxShell::GetGlobalName
+	10    SfxObjectShell::GetInterface
+	11    SfxShell::GetUndoManager
+	12    SfxObjectShell::Invalidate
+	13    SfxShell::Activate
+	14    SfxShell::Deactivate
+	15    SfxShell::ParentActivate
+	16    SfxShell::ParentDeactivate
+	17    SfxShell::HasUIFeature
+	18    SfxObjectShell::GetObjectShell
+	19    SfxShell::CreateItemSet
+	20    SfxShell::ApplyItemSet
+	21    SfxObjectShell::ModifyChanged
+	22    SfxObjectShell::Close
+	23    __cxa_pure_virtual
+	24    SfxObjectShell::GetAPIName
+	25    SfxObjectShell::DoSaveCompleted
+	26    SfxObjectShell::LoadOwnFormat
+	27    SfxObjectShell::SaveAsOwnFormat
+	28    SfxObjectShell::ConvertFrom
+	29    SfxObjectShell::ConvertTo
+	30    SfxObjectShell::InitNew
+	31    SfxObjectShell::Load
+	32    SfxObjectShell::LoadFrom
+	33    SfxObjectShell::Save
+	34    SfxObjectShell::SaveAs
+	35    SfxObjectShell::SaveCompleted
+	36    SfxObjectShell::SwitchPersistance
+	37    SfxObjectShell::UpdateLinks
+	38    SfxObjectShell::QueryTitle
+	39    SfxObjectShell::CreateDocumentInfoDialog
+	40    SfxObjectShell::ViewAssigned
+	41    SfxObjectShell::PrepareClose
+	42    SfxObjectShell::IsInformationLost
+	43    SfxObjectShell::GetHiddenInformationState
+
+
+Mis comparison:
+
+p src_fn->decl_minimal->context->type.name
+
+
+* Is this a bogus warning: ?
+
+Making: ../../../unxlngi6.pro/slo/ViewTabBar.obj
+In file included from /home/opt/OpenOffice/HEAD/build/ooh680-m3/sd/source/ui/view/ViewTabBar.cxx:50:
+../inc/DrawController.hxx:130: warning: 'sd::DrawController' has a field 'sd::DrawController::<anonymous>' whose type uses the anonymous namespace
+../inc/DrawController.hxx:130: warning: 'sd::DrawController' has a base '<unnamed>::BroadcastHelperOwner' whose type uses the anonymous namespace
+
+
+
+These numbers are from a dlopen of libsvx:
+
+After: -Bsym with vtreloc & no thunks: HHInstall
+
+==6245== 
+==6245== Events    : Ir Dr Dw I1mr D1mr D1mw I2mr D2mr D2mw
+==6245== Collected : 93792593 30621698 12509521 5348 982519 40248 4415 106999 21671
+==6245== 
+==6245== I   refs:      93,792,593
+==6245== I1  misses:         5,348
+==6245== L2i misses:         4,415
+==6245== I1  miss rate:        0.0%
+==6245== L2i miss rate:        0.0%
+==6245== 
+==6245== D   refs:      43,131,219  (30,621,698 rd + 12,509,521 wr)
+==6245== D1  misses:     1,022,767  (   982,519 rd +     40,248 wr)
+==6245== L2d misses:       128,670  (   106,999 rd +     21,671 wr)
+==6245== D1  miss rate:        2.3% (       3.2%   +        0.3%  )
+==6245== L2d miss rate:        0.2% (       0.3%   +        0.1%  )
+==6245== 
+==6245== L2 refs:        1,028,115  (   987,867 rd +     40,248 wr)
+==6245== L2 misses:        133,085  (   111,414 rd +     21,671 wr)
+==6245== L2 miss rate:         0.0% (       0.0%   +        0.1%  )
+
+
+After: (-Bsym with vtreloc) NNInstall
+
+==5654== Events    : Ir Dr Dw I1mr D1mr D1mw I2mr D2mr D2mw
+==5654== Collected : 93934554 30683111 12523945 5401 1042727 39626 4460 108467 21739
+==5654== 
+==5654== I   refs:      93,934,554
+==5654== I1  misses:         5,401
+==5654== L2i misses:         4,460
+==5654== I1  miss rate:        0.0%
+==5654== L2i miss rate:        0.0%
+==5654== 
+==5654== D   refs:      43,207,056  (30,683,111 rd + 12,523,945 wr)
+==5654== D1  misses:     1,082,353  ( 1,042,727 rd +     39,626 wr)
+==5654== L2d misses:       130,206  (   108,467 rd +     21,739 wr)
+==5654== D1  miss rate:        2.5% (       3.3%   +        0.3%  )
+==5654== L2d miss rate:        0.3% (       0.3%   +        0.1%  )
+==5654== 
+==5654== L2 refs:        1,087,754  ( 1,048,128 rd +     39,626 wr)
+==5654== L2 misses:        134,666  (   112,927 rd +     21,739 wr)
+==5654== L2 miss rate:         0.0% (       0.0%   +        0.1%  )
+
+Before: (-Bsym - no vtreloc) OOInstall
+
+==5757== 
+==5757== Events    : Ir Dr Dw I1mr D1mr D1mw I2mr D2mr D2mw
+==5757== Collected : 103124440 33576208 13653348 5330 1063384 46609 4394 115172 21304
+==5757== 
+==5757== I   refs:      103,124,440
+==5757== I1  misses:          5,330
+==5757== L2i misses:          4,394
+==5757== I1  miss rate:         0.0%
+==5757== L2i miss rate:         0.0%
+==5757== 
+==5757== D   refs:       47,229,556  (33,576,208 rd + 13,653,348 wr)
+==5757== D1  misses:      1,109,993  ( 1,063,384 rd +     46,609 wr)
+==5757== L2d misses:        136,476  (   115,172 rd +     21,304 wr)
+==5757== D1  miss rate:         2.3% (       3.1%   +        0.3%  )
+==5757== L2d miss rate:         0.2% (       0.3%   +        0.1%  )
+==5757== 
+==5757== L2 refs:         1,115,323  ( 1,068,714 rd +     46,609 wr)
+==5757== L2 misses:         140,870  (   119,566 rd +     21,304 wr)
+==5757== L2 miss rate:          0.0% (       0.0%   +        0.1%  )
+
+Without -Bsymb-function: PPInstall
+
+==6021== 
+==6021== Events    : Ir Dr Dw I1mr D1mr D1mw I2mr D2mr D2mw
+==6021== Collected : 150810465 47775963 19058259 5441 1550394 53953 4440 155020 22712
+==6021== 
+==6021== I   refs:      150,810,465
+==6021== I1  misses:          5,441
+==6021== L2i misses:          4,440
+==6021== I1  miss rate:         0.0%
+==6021== L2i miss rate:         0.0%
+==6021== 
+==6021== D   refs:       66,834,222  (47,775,963 rd + 19,058,259 wr)
+==6021== D1  misses:      1,604,347  ( 1,550,394 rd +     53,953 wr)
+==6021== L2d misses:        177,732  (   155,020 rd +     22,712 wr)
+==6021== D1  miss rate:         2.4% (       3.2%   +        0.2%  )
+==6021== L2d miss rate:         0.2% (       0.3%   +        0.1%  )
+==6021== 
+==6021== L2 refs:         1,609,788  ( 1,555,835 rd +     53,953 wr)
+==6021== L2 misses:         182,172  (   159,460 rd +     22,712 wr)
+==6021== L2 miss rate:          0.0% (       0.0%   +        0.1%  )
+
+
+** So - instead go for size savings ! ;-)
+	+ call.c
+	+ is there an optimisation that converts a
+	  virtual call, to a direct one - if the type is
+	  fully known ? [!?]
+
+
+
+So - LD_DEBUG=bindings output:
+
+After:
+
+cat /tmp/linklog | sed 's/.*file '// | sed 's/ \[.*//' | sort | uniq -c | sort -n
+
+    456 /usr/lib/libgtk-x11-2.0.so.0
+    466 /opt/HHInstall/program/libfwe680li.so
+    479 /opt/HHInstall/program/bootstrap.uno.so
+    481 /opt/HHInstall/program/liblng680li.so
+    515 /usr/lib/libxml2.so.2
+    518 /opt/HHInstall/program/i18npool.uno.so
+    521 /usr/lib/libORBit-2.so.0
+    664 /usr/lib/libdb-4.5.so
+    694 /opt/HHInstall/program/libicuuc.so.36
+    929 /opt/HHInstall/program/libvcl680li.so
+    938 /opt/HHInstall/program/libsfx680li.so
+   1061 /opt/HHInstall/program/libfwk680li.so
+   1070 /opt/HHInstall/program/libstlport_gcc.so
+   1121 /usr/lib/libstdc++.so.6
+   1178 /opt/HHInstall/program/configmgr2.uno.so
+   1195 /opt/HHInstall/program/libsb680li.so
+   1667 /opt/HHInstall/program/libicui18n.so.36
+   2308 /opt/HHInstall/program/libsw680li.so
+   2664 /opt/HHInstall/program/libsvx680li.so
+   2855 /opt/HHInstall/program/libsvt680li.so
+
+with -Bsym-fn
+    687 /opt/OOInstall/program/libicuuc.so.36
+    943 /opt/OOInstall/program/libvcl680li.so
+   1075 /opt/OOInstall/program/libsb680li.so
+   1091 /opt/OOInstall/program/libstlport_gcc.so
+   1121 /usr/lib/libstdc++.so.6
+   1214 /opt/OOInstall/program/configmgr2.uno.so
+   1436 /opt/OOInstall/program/libsfx680li.so
+   1509 /opt/OOInstall/program/libfwk680li.so
+   1637 /opt/OOInstall/program/libicui18n.so.36
+   3553 /opt/OOInstall/program/libsvt680li.so
+   4037 /opt/OOInstall/program/libsw680li.so
+   4418 /opt/OOInstall/program/libsvx680li.so
+
+** so - why not a greater speedup ? - **
+
+before:
+
+   1091 /opt/PPInstall/program/libstlport_gcc.so
+   1121 /usr/lib/libstdc++.so.6
+   1174 /opt/PPInstall/program/libfwe680li.so
+   1181 /opt/PPInstall/program/libtk680li.so
+   1214 /opt/PPInstall/program/configmgr2.uno.so
+   1266 /opt/PPInstall/program/libcomphelp4gcc3.so
+   1509 /opt/PPInstall/program/libfwk680li.so
+   1637 /opt/PPInstall/program/libicui18n.so.36
+   2591 /opt/PPInstall/program/libsb680li.so
+   2801 /opt/PPInstall/program/libsfx680li.so
+   3088 /opt/PPInstall/program/libvcl680li.so
+   5132 /opt/PPInstall/program/libsw680li.so
+   5472 /opt/PPInstall/program/libsvt680li.so
+  11718 /opt/PPInstall/program/libsvx680li.so

Modified: trunk/patches/src680/apply
==============================================================================
--- trunk/patches/src680/apply	(original)
+++ trunk/patches/src680/apply	Mon Feb 18 16:57:59 2008
@@ -12,7 +12,7 @@
 Common : BuildBits, TemporaryHacks, FixesNotForUpstream, \
 	 Fixes, DefaultSettings, Features, VCL, Misc, \
 	 Icons, Branding, CalcFixes, WriterFixes, EasterEgg, \
-	 SpeedImageList, GStreamer, CWSBackports, WPG, Cleanups, WMF, \
+	 GStreamer, CWSBackports, WPG, Cleanups, WMF, \
 	 Layout, VBABits, VBAObjects, CalcErrors, Store, CJK, GCJ, Lwp, \
 	 OOXML, EMFPlus
 

Added: trunk/patches/test/built-in-unit-test.diff
==============================================================================
--- (empty file)
+++ trunk/patches/test/built-in-unit-test.diff	Mon Feb 18 16:57:59 2008
@@ -0,0 +1,156 @@
+Index: solenv/bin/deliver.pl
+===================================================================
+RCS file: /cvs/tools/solenv/bin/deliver.pl,v
+retrieving revision 1.124
+diff -u -p -u -r1.124 deliver.pl
+--- solenv/bin/deliver.pl	26 Nov 2007 19:00:17 -0000	1.124
++++ solenv/bin/deliver.pl	18 Feb 2008 16:57:01 -0000
+@@ -40,6 +40,8 @@ eval 'exec perl -wS $0 ${1+"$@"}'
+ # deliver.pl - copy from module output tree to solver
+ #
+ 
++use lib ("$ENV{SOLARENV}/bin/modules");
++
+ use Cwd;
+ use File::Basename;
+ use File::Copy;
+@@ -47,6 +49,9 @@ use File::DosGlob 'glob';
+ use File::Path;
+ use File::Spec;
+ 
++# for component registration ...
++use installer::globals;
++
+ #### script id #####
+ 
+ ( $script_name = $0 ) =~ s/^.*\b(\w+)\.pl$/$1/; 
+@@ -757,6 +762,109 @@ sub strip_target {
+     return $rc;
+ };
+ 
++# start evil cut/paste from bin/modules/installer/servicesfile.pm ...
++
++################################################################
++# Generating a file url from a path
++################################################################
++
++sub remove_ending_pathseparator
++{
++	my ( $stringref ) = @_;
++
++	$$stringref =~ s/\Q$installer::globals::separator\E\s*$//;	
++}
++
++sub make_file_url
++{
++	my ( $path ) = @_;
++
++	my $fileurl = "";
++	
++	# removing ending slash/backslash
++	
++	remove_ending_pathseparator(\$path);
++	
++	if ($installer::globals::iswin)
++	{
++		$path =~ s/\\/\//g;
++		$fileurl = "file\:\/\/\/" . $path;
++	}
++	else
++	{
++		$fileurl = "file\:\/\/" . $path;
++	} 
++	
++	return $fileurl;
++}
++
++################################################################
++# Helper routine to change cygwin (POSIX) path to DOS notation
++# if needed
++################################################################
++sub fix_cygwin_path
++{
++    my ( $path ) = @_;
++
++    if ( $installer::globals::iswin eq 1 && $ENV{'USE_SHELL'} ne "4nt" && $installer::globals::wrapcmd eq "" )
++    {
++	$path = qx{cygpath -m "$path"};
++	chomp($path);
++    }
++
++    return $path;
++}
++
++sub get_regcomp()
++{
++    my $searchname;
++    if ($installer::globals::isunix) { $searchname = "regcomp"; }
++    else { $searchname = "regcomp.exe"; } 
++    return $searchname;
++}
++
++sub register_component ($)
++{
++    my $component = shift;
++
++    # Try to register all libraries
++    $component =~ /\.(so|dylib|dll)/ || return;
++
++    my $solarlib = $ENV{SOLARVER}."/".$ENV{INPATH}."/lib";
++    my $servicesfile = "$solarlib/services.rdb";
++    my @regcompoutput = ();
++    my $regcomp = get_regcomp();
++
++    my $filestring = make_file_url($component);
++
++    my $systemcall = "$installer::globals::wrapcmd $regcomp " .
++	"-register -r ".fix_cygwin_path($servicesfile).
++	" -c " . $installer::globals::quote . $filestring . $installer::globals::quote .
++	" -wop=" . $installer::globals::quote . $allvariableshashref->{'NATIVESERVICESURLPREFIX'} . $installer::globals::quote .
++	" 2\>\&1 |";
++
++    open (REG, "$systemcall");
++    while (<REG>) {push(@regcompoutput, $_); }
++    close (REG);
++    
++    my $returnvalue = $?;   # $? contains the return value of the systemcall
++
++    # cf. cpputools/source/registercomponent/registercomponent.cxx
++    if ($returnvalue == 256) {
++	# has no component_ methods (?)
++	print "non component: $component\n" if !$opt_silent;
++	return;
++    } elsif ($returnvalue == 0) {
++	print "registered component: $component\n" if !$opt_silent;
++    } elsif (!$opt_silent) {
++	print "Warning: registraiton failed abnormally with code: $returnvalue\n";
++	print "command: $systemcall";
++	print "output: @regcompoutput";
++    }
++}
++
++# evil cut/paste from bin/modules/installer/servicesfile.pm ends ...
++
+ sub copy_if_newer 
+ {
+     # return 0 if file is unchanged ( for whatever reason )
+@@ -841,6 +949,11 @@ sub copy_if_newer 
+                 system("macosx-create-bundle", "$to=$from.app") if ( -d "$from.app" );
+                 system("ranlib", "$to" ) if ( $to =~ /\.a/ );
+             }
++
++	    # register each component as it is delivered into a tests .rdb
++#	    if (defined $ENV{QAREG}) {
++		register_component ($to);
++#	    }
+             return 1;
+         }
+         else {
+@@ -854,6 +967,7 @@ sub copy_if_newer 
+             print_error("directory '$destdir' does not exist", 0);
+         }
+     }
++
+     unlink($temp_file);
+     return 0;
+ }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]