Subject: now I'm really stymied, mozilla-gtk2-1.7.3 also fails for me on i386
To: NetBSD Packages Technical Discussion List <tech-pkg@NetBSD.ORG>
From: Greg A. Woods <woods@weird.com>
List: tech-pkg
Date: 12/02/2004 20:39:19
OK, now I'm really stymied.  Can anyone shed any clue on what I'm doing
wrong in my pkgsrc builds?

So far as I can tell I've built everything necessary for mozilla-gtk2 to
work,  in all the right ways, just as I've done to get it to work
before.

I.e. as far as I can tell I've done nothing different than I did
previously to get mozilla-gtk2-1.6 to work.

Now I'm sure though it's something I'm doing different since everyone
else seems to be happy with 1.7.3 on 1.6.2_STABLE, and especialy since
this is the exact same failure I'm seeing on the alpha.

At least now though on i386 the GDB stack trace seems to be more
meaningful -- though not to me.....

I'd sure appreciate some help from anyone more knowledgeable about
mozilla innards than I am (which should be most anyone! :-)



+ cd /usr/pkg/lib/mozilla-gtk2
+ /usr/bin/env -i LD_LIBRARY_PATH=. MOZILLA_FIVE_HOME=. ./regxpcom
Segmentation fault - core dumped
*** Error code 139

Stop.
make: stopped in /building/work/woods/m-NetBSD-pkgsrc/www/mozilla-gtk2
*** Error code 1
[ttyp0]<woods@always> # tail - /var/log/kern
Dec  2 19:18:53 always /netbsd: regxpcom: pid 25207 [eid 0:0, rid 0:0] exited on signal 11: dumped core [in /usr/pkg/lib/mozilla-gtk2/regxpcom.core]
[ttyp0]<woods@always> # cd /usr/pkg/lib/mozilla-gtk2
[ttyp0]<woods@always> # gdb ./regxpcom ./regxpcom.core
GNU gdb 5.0nb1
Copyright 2000 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386--netbsdelf"...
Core was generated by `regxpcom'.
Program terminated with signal 11, Segmentation fault.

warning: current_sos: Can't read pathname for load map: Input/output error

Reading symbols from /usr/pkg/lib/mozilla-gtk2/./libplds4.so...done.
Loaded symbols for /usr/pkg/lib/mozilla-gtk2/./libplds4.so
Reading symbols from /usr/pkg/lib/mozilla-gtk2/./libplc4.so...done.
Loaded symbols for /usr/pkg/lib/mozilla-gtk2/./libplc4.so
Reading symbols from /usr/pkg/lib/mozilla-gtk2/./libnspr4.so...done.
Loaded symbols for /usr/pkg/lib/mozilla-gtk2/./libnspr4.so
Reading symbols from /usr/lib/libintl.so.0...done.
Loaded symbols for /usr/lib/libintl.so.0
Reading symbols from /usr/lib/libstdc++.so.4...done.
Loaded symbols for /usr/lib/libstdc++.so.4
Reading symbols from /usr/lib/libm387.so.0...done.
Loaded symbols for /usr/lib/libm387.so.0
Reading symbols from /usr/lib/libm.so.0...done.
Loaded symbols for /usr/lib/libm.so.0
Reading symbols from /usr/lib/libc.so.12...done.
Loaded symbols for /usr/lib/libc.so.12
Reading symbols from /usr/pkg/lib/mozilla-gtk2/./libxpcom.so...done.
Loaded symbols for /usr/pkg/lib/mozilla-gtk2/./libxpcom.so
Reading symbols from /usr/pkg/lib/libiconv.so.4...done.
Loaded symbols for /usr/pkg/lib/libiconv.so.4
#0  0x482172b9 in nsAppFileLocationProvider::GetProductDirectory (
    this=0x805ad40, aLocalFile=0xbfbfd95c)
    at ../../dist/include/string/nsCharTraits.h:339
339             return strlen(s);
(gdb) where
#0  0x482172b9 in nsAppFileLocationProvider::GetProductDirectory (
    this=0x805ad40, aLocalFile=0xbfbfd95c)
    at ../../dist/include/string/nsCharTraits.h:339
#1  0x48216ebc in nsAppFileLocationProvider::GetFile (this=0x805ad40, 
    prop=0x48275487 "UserPlugins", persistant=0xbfbfd9a4, _retval=0xbfbfd9ac)
    at nsAppFileLocationProvider.cpp:244
#2  0x48217be7 in nsPathsDirectoryEnumerator::HasMoreElements (this=0x80746a0, 
    result=0xbfbfda08) at nsAppFileLocationProvider.cpp:459
#3  0x48252254 in AppendFromDirServiceList (codename=0x48279ef5 "APluginsDL", 
    aPath=0x805c380) at xptiInterfaceInfoManager.cpp:214
#4  0x482523d2 in xptiInterfaceInfoManager::BuildFileSearchPath (
    aPath=0xbfbfda8c) at xptiInterfaceInfoManager.cpp:272
#5  0x482519fb in xptiInterfaceInfoManager::GetInterfaceInfoManagerNoAddRef ()
    at xptiInterfaceInfoManager.cpp:64
#6  0x48256770 in XPTI_GetInterfaceInfoManager ()
    at xptiInterfaceInfoManager.cpp:2114
#7  0x4823b2e4 in nsComponentManagerImpl::AutoRegisterImpl (this=0x805d100, 
    when=0, inDirSpec=0x0, fileIsCompDir=1) at nsComponentManager.cpp:3192
#8  0x4823bc1b in nsComponentManagerImpl::AutoRegister (this=0x805d100, 
    aSpec=0x0) at nsComponentManager.cpp:3428
#9  0x481f981c in NS_InitXPCOM2 (result=0x0, binDirectory=0x0, 
    appFileLocationProvider=0x805ac60) at nsXPComInit.cpp:576
#10 0x804cce1 in NS_InitXPCOM2 (result=0x0, binDirectory=0x0, 
---Type <return> to continue, or q <return> to quit---
    appFileLocationProvider=0x805ac60) at nsXPCOMGlue.cpp:173
#11 0x804c10e in startup_xpcom () at regxpcom.cpp:167
#12 0x804c6c1 in main (argc=1, argv=0xbfbfdd50) at regxpcom.cpp:389
#13 0x804bbe9 in ___start (argc=1, argv=0xbfbfdd50, envp=0xbfbfdd58, 
    cleanup=0x480559e0, obj=0x48060200, ps_strings=0xbfbfdff0)
    at /building/work/woods/m-NetBSD-1.6/lib/csu/i386_elf/crt0.c:94
(gdb) list
334     
335         static
336         size_t
337         length( const char_type* s )
338           {
339             return strlen(s);
340           }
341     
342         static
343         const char_type*
(gdb) up
#1  0x48216ebc in nsAppFileLocationProvider::GetFile (this=0x805ad40, 
    prop=0x48275487 "UserPlugins", persistant=0xbfbfd9a4, _retval=0xbfbfd9ac)
    at nsAppFileLocationProvider.cpp:244
244             rv = GetProductDirectory(getter_AddRefs(localFile));
(gdb) list
239             if (pathVar)
240                 rv = NS_NewNativeLocalFile(nsDependentCString(pathVar), PR_TRUE, getter_AddRefs(localFile));
241         }
242         else if (nsCRT::strcmp(prop, NS_USER_PLUGINS_DIR) == 0)
243         {
244             rv = GetProductDirectory(getter_AddRefs(localFile));
245             if (NS_SUCCEEDED(rv))
246                 rv = localFile->AppendRelativeNativePath(PLUGINS_DIR_NAME);
247         }
248     #endif
(gdb) up
#2  0x48217be7 in nsPathsDirectoryEnumerator::HasMoreElements (this=0x80746a0, 
    result=0xbfbfda08) at nsAppFileLocationProvider.cpp:459
459                 (void)mProvider->GetFile(*mCurrentKey++, &dontCare, getter_AddRefs(testFile));
(gdb) list
454         {
455             while (!mNext && *mCurrentKey)
456             {
457                 PRBool dontCare;
458                 nsCOMPtr<nsIFile> testFile;
459                 (void)mProvider->GetFile(*mCurrentKey++, &dontCare, getter_AddRefs(testFile));
460                 // Don't return a file which does not exist.
461                 PRBool exists;
462                 if (testFile && NS_SUCCEEDED(testFile->Exists(&exists)) && exists)
463                     mNext = testFile;
(gdb) up
#3  0x48252254 in AppendFromDirServiceList (codename=0x48279ef5 "APluginsDL", 
    aPath=0x805c380) at xptiInterfaceInfoManager.cpp:214
214         while(NS_SUCCEEDED(fileList->HasMoreElements(&more)) && more)
(gdb) list
209                         getter_AddRefs(fileList));
210         if(!fileList)
211             return PR_FALSE;
212         
213         PRBool more;
214         while(NS_SUCCEEDED(fileList->HasMoreElements(&more)) && more)
215         {
216             nsCOMPtr<nsILocalFile> dir;
217             fileList->GetNext(getter_AddRefs(dir));
218             if(!dir || !aPath->AppendElement(dir))
(gdb) up
#4  0x482523d2 in xptiInterfaceInfoManager::BuildFileSearchPath (
    aPath=0xbfbfda8c) at xptiInterfaceInfoManager.cpp:272
272         (void)AppendFromDirServiceList(NS_APP_PLUGINS_DIR_LIST, searchPath);
(gdb) list
267     
268             if(!equalsCompDir)
269                 searchPath->AppendElement(greComponentDirectory);
270         }
271     
272         (void)AppendFromDirServiceList(NS_APP_PLUGINS_DIR_LIST, searchPath);
273     
274         NS_ADDREF(*aPath = searchPath);
275         return PR_TRUE;
276     }
(gdb) up
#5  0x482519fb in xptiInterfaceInfoManager::GetInterfaceInfoManagerNoAddRef ()
    at xptiInterfaceInfoManager.cpp:64
64              BuildFileSearchPath(getter_AddRefs(searchPath));
(gdb) list
59      xptiInterfaceInfoManager::GetInterfaceInfoManagerNoAddRef()
60      {
61          if(!gInterfaceInfoManager)
62          {
63              nsCOMPtr<nsISupportsArray> searchPath;
64              BuildFileSearchPath(getter_AddRefs(searchPath));
65              if(!searchPath)
66              {
67                  NS_ERROR("can't get xpt search path!");    
68                  return nsnull;
(gdb) up
#6  0x48256770 in XPTI_GetInterfaceInfoManager ()
    at xptiInterfaceInfoManager.cpp:2114
2114        nsIInterfaceInfoManager* iim =
(gdb) list
2109    /***************************************************************************/
2110    
2111    XPTI_PUBLIC_API(nsIInterfaceInfoManager*)
2112    XPTI_GetInterfaceInfoManager()
2113    {
2114        nsIInterfaceInfoManager* iim =
2115            xptiInterfaceInfoManager::GetInterfaceInfoManagerNoAddRef();
2116        NS_IF_ADDREF(iim);
2117        return iim;
2118    }
(gdb) up
#7  0x4823b2e4 in nsComponentManagerImpl::AutoRegisterImpl (this=0x805d100, 
    when=0, inDirSpec=0x0, fileIsCompDir=1) at nsComponentManager.cpp:3192
3192        nsCOMPtr<nsIInterfaceInfoManager> iim =
(gdb) list
3187            mComponentsDir->Clone(getter_AddRefs(dir));
3188            if (!dir)
3189                return NS_ERROR_NOT_INITIALIZED;
3190        }
3191    
3192        nsCOMPtr<nsIInterfaceInfoManager> iim =
3193            dont_AddRef(XPTI_GetInterfaceInfoManager());
3194    
3195        if (!iim)
3196            return NS_ERROR_UNEXPECTED;
(gdb) up
#8  0x4823bc1b in nsComponentManagerImpl::AutoRegister (this=0x805d100, 
    aSpec=0x0) at nsComponentManager.cpp:3428
3428            return AutoRegisterImpl(0, aSpec, PR_FALSE);
(gdb) list
3423    
3424        PRBool directory;
3425        aSpec->IsDirectory(&directory);
3426    
3427        if (directory)
3428            return AutoRegisterImpl(0, aSpec, PR_FALSE);
3429    
3430        return AutoRegisterComponent(0, aSpec);
3431    }
3432    
(gdb) up
#9  0x481f981c in NS_InitXPCOM2 (result=0x0, binDirectory=0x0, 
    appFileLocationProvider=0x805ac60) at nsXPComInit.cpp:576
576             nsComponentManagerImpl::gComponentManager->AutoRegister(nsnull);        
(gdb) list
571     #endif
572     
573         if ( NS_FAILED(rv) || CheckAndRemoveUpdateFile()) {
574             // if we find no persistent registry, we will try to autoregister
575             // the default components directory.
576             nsComponentManagerImpl::gComponentManager->AutoRegister(nsnull);        
577     
578             // If the application is using a GRE, then, 
579             // auto register components in the GRE directory as well.
580             //
(gdb) up
#10 0x804cce1 in NS_InitXPCOM2 (result=0x0, binDirectory=0x0, 
    appFileLocationProvider=0x805ac60) at nsXPCOMGlue.cpp:173
173         return xpcomFunctions.init(result, binDirectory, appFileLocationProvider);
(gdb) list
168                   nsIFile* binDirectory,
169                   nsIDirectoryServiceProvider* appFileLocationProvider)
170     {
171         if (!xpcomFunctions.init)
172             return NS_ERROR_NOT_INITIALIZED;
173         return xpcomFunctions.init(result, binDirectory, appFileLocationProvider);
174     }
175     
176     extern "C" NS_COM nsresult
177     NS_ShutdownXPCOM(nsIServiceManager* servMgr)
(gdb) up
#11 0x804c10e in startup_xpcom () at regxpcom.cpp:167
167       rv = NS_InitXPCOM2(nsnull, file, provider);
(gdb) list
162                                    PR_TRUE, 
163                                    getter_AddRefs(file));
164       }
165     
166       NS_ADDREF(provider);
167       rv = NS_InitXPCOM2(nsnull, file, provider);
168       NS_RELEASE(provider);
169         
170       if (NS_FAILED(rv)) {
171         printf("Can not initialize XPCOM\n");
(gdb) up
#12 0x804c6c1 in main (argc=1, argv=0xbfbfdd50) at regxpcom.cpp:389
389         startup_xpcom();
(gdb) list
384       nsresult rv;
385     
386       /* With no arguments, regxpcom will autoregister */
387       if (argc <= 1)
388       {
389         startup_xpcom();
390         nsCOMPtr<nsIComponentRegistrar> registrar;
391         rv = NS_GetComponentRegistrar(getter_AddRefs(registrar));
392         if (NS_FAILED(rv)) {
393           printf("Can not aquire component registrar\n");
(gdb) 

-- 
						Greg A. Woods

+1 416 218-0098                  VE3TCP            RoboHack <woods@robohack.ca>
Planix, Inc. <woods@planix.com>          Secrets of the Weird <woods@weird.com>