[Helix-client-dev] Re: CR/CN: Solaris-Sparc-GCC patches for GMPMetaEditor branch

Petar Basic <[email protected]> Tue, 12 Jan 2010 13:19:44 +0100
Newsgroups gmane.comp.multimedia.helix.devel
Message-ID <[email protected]>
Additional fixes for Solaris native compiler.


On Mon, Jan 11, 2010 at 6:58 PM, Petar Basic <[email protected]> wrote:
> Modified by: pbasic at real.com
> Date: 2010/01/11
> Project: GMP MetaEditor (meta3gp.exe)
>
> Synopsis:
> Solaris-Sparc-GCC patches for GMPMetaEditor branch
>
> Overview:
> This CR includes patches needed to successfully build/run meta3gp
> project with GCC on Solaris-Sparc.
>
> Checked into GMPMetaEditor branch immediately since I need to verify
> the build on the farm ASAP.  Some points below can be discussed and
> improved on later, however, at this time they seem irrelevant in the
> context of GMPMetaEditor.
>
> Details:
> 1.) "audio/fixptutil/pub/math64.h" was failing to compile due to
> missing implementation of 64-bit operations for Solaris-Sparc-GCC
> combo.
>
> In the CVS log, one can find traces of Sparc specific blocks of code
> which according to CVS comments had some bugs and were replaced by
> platform independent (plain C) implementations for Solaris-SunStudio
> combo.  Relevant ifdef statement has now been modified to also compile
> platform independent implementations under Solaris-Sparc-GCC combo.
>
> All tests performed by "audio/fixptutil/test/fixpttest.c" succeed,
> although the execution proves slow.  Testing with MetaEditor reveals
> that these operations are not used during meta-data
> extraction/injection, so at this time optimization for
> Solaris-Sparc-GCC does not seem important.
>
> 2.) statvfs on Solaris fails if passed an empty path argument, which
> causes calling method CHXFileSpecUtils::IsDiskLocal to print out an
> error to the console.  This is not acceptable for MetaEditor,
> especially since everything works correctly.  The culprit is actually
> in MemoryMapDataFile::Bind method in
> "common/fileio/platform/unix/mmapdatf.cpp".  The code has been updated
> to process empty paths as a special case before resorting to
> CHXFileSpecUtils::IsDiskLocal.  Also, what seems as a duplicate code
> block due to a bad check-in has been removed.
>
> 3.) RMAShutdown entry point which is now required by plugin handler
> has been added to metaeditor.dll.
>
> 4.) Defaulting meta3gp executable to DTDriver synchronous mode since
> asynchronous mode is not implemented on Solaris.
>
> 5.) Fixed various build busters.
>
> 6.) Reordered library dependencies in a few projects to allow the
> Solaris linker to link all symbols correctly.
>
> Testing:
> Verified operation on GMP MetaEditor on Solaris 5.10 Sparc via
> standard MetaEditor test scripts.
>
> Files Modified:
> audio/fixptutil/pub/math64.h
> client/medpltfm/hxmedpltfmdll
> client/medpltfm/pub/chxmedpltfmkicker.h
> client/medpltfm/pub/chxmedpltfmsched.h
> common/fileio/platform/unix/mmapdatf.cpp
> datatype/mp4/filewriter/m4avsh.cpp
> datatype/mp4/filewriter/mp4atoms.h
> datatype/mp4/filewriter/mp4sm.cpp
> datatype/mp4/filewriter/ra10sh.cpp
> datatype/tools/dtdriver/apps/meta3gp/HXXmlInputParser.h
> datatype/tools/dtdriver/apps/meta3gp/Umakefil_meta3gp
> datatype/tools/dtdriver/apps/meta3gp/Umakefil_tests
> datatype/tools/dtdriver/apps/meta3gp/main.cpp
> datatype/tools/dtdriver/dtdrplin/dtdr_genr_lib
> datatype/tools/dtdriver/dtdrplin/dtdr_platform_dll
> datatype/tools/metaeditor/Umakefil
> datatype/tools/metaeditor/hxdll.cpp
>
> Platforms and Profiles Affected:
> All
>
> Image Size and Heap Use impact:
> None
>
> Platforms and Profiles Build Verified:
> system id: win32-i386-vc7, sunos-5.8-sparc-gcc-server
> profile: helix-client-all-defines
>
> Platforms and Profiles Functionality Verified:
> x86 Windows XP SP2
> Sparc SunOS 5.10
>
> Branch:
> GMPMetaEditor
>
> Copyright assignment:
> I am a RealNetworks employee or contractor.
>

_______________________________________________
Helix-client-dev mailing list
[email protected]
http://lists.helixcommunity.org/mailman/listinfo/helix-client-dev
client_core.2.diff (application/octet-stream, 2.9 KB)
Index: hxmedengpln
===================================================================
RCS file: /cvsroot/client/core/hxmedengpln,v
retrieving revision 1.5
diff -d -H -w -U30 -r1.5 hxmedengpln
--- hxmedengpln	18 Dec 2009 18:36:36 -0000	1.5
+++ hxmedengpln	12 Jan 2010 00:28:07 -0000
@@ -45,60 +45,61 @@
 # Technology Compatibility Kit Test Suite(s) Location:
 #    http://www.helixcommunity.org/content/tck
 # 
 # Contributor(s):
 # 
 # ***** END LICENSE BLOCK *****
 # 
 
 UmakefileVersion(2,2)
 
 project.AddModuleIncludes("common/include",
                           "common/container/pub",
                           "common/util/pub",
                           "common/system/pub",
                           "common/dbgtool/pub",
                           "common/runtime/pub",
                           "common/fileio/pub",
                           "common/lang/xml/pub",
                           "common/netio/pub",
                           "protocol/transport/common/system/pub",
                           "protocol/transport/rtp/pub",			  
                           "protocol/common/util/pub",
                           "protocol/rtsp/pub",
                           "protocol/rtsp/include",
                           "protocol/pna/pub",
                           "protocol/sdp/pub",
                           "audio/include",
                           "video/include",
                           "video/colconverter/pub")
 
+project.AddModuleIncludes("client/core")
 
 project.AddIncludes("../include",
                     "../common/container/pub",
                     "../common/util/pub",
                     "../common/netio/pub",
                     "../common/system/pub",
                     "../audiosvc/pub",
                     "../videosvc/pub",
                     "../netwksvc/pub",
                     "../resource/pub")
 
 project.AddModuleLibraries("common/dbgtool[debuglib]",
                            "common/util[utillib]",
                            "common/container[contlib]",
                            "common/system[syslib]",
                            "common/runtime[runtlib]",
                            "common/fileio[fileiolib]",
                            "common/log/logutil[logutillib]",
                            "client/common/system[sysclntlib]",
                            "client/common/container[contclntlib]",
                            "client/common/util[utlclntlib]",
                            "client/core[clntcorelib]",
                            "datatype/common/container[dtcomcontlib]")
 
 if project.IsDefined('HELIX_FEATURE_AUDIO'):
         project.AddModuleLibraries("audio/device[auddevlib]",
                                    "client/audiosvc[audsvclib]")
 
 if project.IsDefined('HELIX_FEATURE_GAINTOOL'):
 	project.AddModuleLibraries("audio/gaintool[audgainlib]" )
datatype_tools_dtdriver_dtdrplin.2.diff (application/octet-stream, 3.4 KB)
Index: dtdr_genr_dll
===================================================================
RCS file: /cvsroot/datatype/tools/dtdriver/dtdrplin/dtdr_genr_dll,v
retrieving revision 1.6
diff -d -H -w -U30 -r1.6 dtdr_genr_dll
--- dtdr_genr_dll	18 Dec 2009 18:38:58 -0000	1.6
+++ dtdr_genr_dll	12 Jan 2010 00:25:07 -0000
@@ -35,60 +35,62 @@
 # developer of the Original Code and owns the copyrights in the
 # portions it created.
 # 
 # This file, and the files included with this file, is distributed
 # and made available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY
 # KIND, EITHER EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS
 # ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES
 # OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET
 # ENJOYMENT OR NON-INFRINGEMENT.
 # 
 # Technology Compatibility Kit Test Suite(s) Location:
 #    http://www.helixcommunity.org/content/tck
 # 
 # Contributor(s):
 # 
 # ***** END LICENSE BLOCK *****
 # 
 
 project.AddModuleIncludes("common/include",
                           "common/log/logobserverfile/pub",
                           "datatype/tools/dtdriver/engine",
                           "common/system/pub",
                           "common/container/pub",
                           "common/dbgtool/pub",
                           "common/util/pub",
                           "datatype/tools/dtdriver/engine/pub",
                           "client/common/system/pub",
                           "datatype/tools/minicntx/pub",
                           "client/encodesvc/include")
 
+project.AddModuleIncludes("datatype/tools/dtdriver/dtdrplin")
+
 project.AddModuleLibraries("datatype/common/util[dtutillib]")
 project.AddModuleLibraries( "datatype/tools/dtdriver/loader[SourceHandlerLoader]",
                             "datatype/tools/dtdriver/engine[dtdrengine]",
                             "datatype/tools/dtdriver/common[dtdrcomlib]",
                             "datatype/tools/dtdriver/decoder/common[dtdrdeclib]",
                             "datatype/tools/dtdriver/decoder/audio[dtdrauddec]",
                             "datatype/tools/dtdriver/decoder/video[dtdrviddec]",
                             "client/common/container[contclntlib]",
                             "client/common/system[sysclntlib]",
                             "client/common/util[utlclntlib]",
                             "common/runtime[runtlib]",
                             "common/dbgtool[debuglib]", 
                             "common/util[utillib]", 
                             "common/container[contlib]",
                             "common/system[syslib]",
                             "common/fileio[fileiolib]",
                             "common/lang/xml[xmllib]")
 
 if project.IsDefined("HELIX_FEATURE_MISU"):
 	project.AddModuleLibraries( "client/videosvc[vidsvclib]")
 	
 if project.IsDefined("HELIX_FEATURE_DTDR_MIXER"):
     project.AddModuleLibraries("client/audiosvc[audsvclib]")
     if ('HELIX_FEATURE_GAINTOOL' in project.defines):
 	project.AddModuleLibraries("audio/gaintool[audgainlib]" )
     if ('HELIX_FEATURE_CROSSFADE' in project.defines):
 	project.AddModuleLibraries("audio/crossfade[audxfadelib]")
     if ('HELIX_FEATURE_LIMITER' in project.defines):
 	project.AddModuleLibraries('audio/limiter[audlimiter]')
     if ('HELIX_FEATURE_RESAMPLER' in project.defines):