[vbox-dev] Remove a hack in bsd which disable -O2 in VBoxSVC

Klaus Espenlaub klaus.espenlaub at oracle.com
Tue Mar 29 10:42:29 PDT 2011


sorry about the late reply... something resembling your patches is now 
integrated in VirtualBox (trunk only so far). The change should show up 
tomorrow or so. Used a slightly different approach, but the results 
should be the same.

Klaus

On 14.02.2011 02:42, Howard Su wrote:
> Latest version of patch, tested in FreeBSD 8.1
>
>
> Index: VBox/Main/src-server/xpcom/server.cpp
> ===================================================================
> --- VBox/Main/src-server/xpcom/server.cpp       (revision 35941)
> +++ VBox/Main/src-server/xpcom/server.cpp       (working copy)
> @@ -662,23 +662,7 @@
>
>   ////////////////////////////////////////////////////////////////////////////////
>
> -static const nsModuleComponentInfoEx components[] =
> -{
> -    nsModuleComponentInfoEx(
> -        "VirtualBox component",
> -        CLSID_VirtualBox,
> -        NS_VIRTUALBOX_CONTRACTID,
> -        VirtualBoxConstructor, // constructor function
> -        NULL, // registration function
> -        NULL, // deregistration function
> -        VirtualBoxClassFactory::FactoryDestructor, // factory
> destructor function
> -        NS_CI_INTERFACE_GETTER_NAME(VirtualBox),
> -        NULL, // language helper
> -&NS_CLASSINFO_NAME(VirtualBox),
> -        0, // flags
> -        VirtualBoxClassFactory::FactoryConstructor // factory
> constructor function
> -    )
> -};
> +static const nsModuleComponentInfoEx *components;
>
>   /////////////////////////////////////////////////////////////////////////////
>
> @@ -941,8 +925,24 @@
>           }
>
>           registrar->AutoRegister(nsnull);
> -        rc = RegisterSelfComponents(registrar, components,
> -                                    NS_ARRAY_LENGTH (components));
> +
> +       components = new nsModuleComponentInfoEx(
> +        "VirtualBox component",
> +        CLSID_VirtualBox,
> +        NS_VIRTUALBOX_CONTRACTID,
> +        VirtualBoxConstructor, // constructor function
> +        NULL, // registration function
> +        NULL, // deregistration function
> +        VirtualBoxClassFactory::FactoryDestructor, // factory
> destructor function
> +        NS_CI_INTERFACE_GETTER_NAME(VirtualBox),
> +        NULL, // language helper
> +&NS_CLASSINFO_NAME(VirtualBox),
> +        0, // flags
> +               VirtualBoxClassFactory::FactoryConstructor // factory
> constructor function
> +       );
> +
> +       rc = RegisterSelfComponents(registrar, components,
> +                                    1);
>           if (NS_FAILED(rc))
>           {
>               RTMsgError("Failed to register server components! (rc=%Rhrc)", rc);
> @@ -1098,5 +1098,7 @@
>       if (g_pszPidFile)
>           RTFileDelete(g_pszPidFile);
>
> +    delete components;
> +
>       return 0;
>   }
> Index: VBox/Main/Makefile.kmk
> ===================================================================
> --- VBox/Main/Makefile.kmk      (revision 35941)
> +++ VBox/Main/Makefile.kmk      (working copy)
> @@ -244,10 +244,6 @@
>   VBoxSVC_DEFS.freebsd += VBOX_USE_LIBHAL
>
>   VBoxSVC_CXXFLAGS = $(filter-out -Wno-unused,$(TEMPLATE_VBOXMAINEXE_CXXFLAGS))
> -## @todo We're disabling optimizations on FreeBSD to work around strange linker
> -#        errors in release builds. Figure out why and how to work
> around it in a
> -#        more optimal fashion.
> -VBoxSVC_CXXFLAGS.freebsd = -O0
>
>   VBoxSVC_INCS = \
>          include \
>




More information about the vbox-dev mailing list