ooo-build r11621 - in trunk: . bin doc patches/src680 patches/test
- From: michael svn gnome org
- To: svn-commits-list gnome org
- Subject: ooo-build r11621 - in trunk: . bin doc patches/src680 patches/test
- Date: Mon, 18 Feb 2008 16:58:00 +0000 (GMT)
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]