Date: Sat, 26 Jan 2013 18:10:20 +0100 From: Dimitry Andric <dim@FreeBSD.org> To: gecko@FreeBSD.org Cc: Koop Mast <kwm@FreeBSD.org>, Mark Linimon <linimon@FreeBSD.org>, Niclas Zeising <zeising@FreeBSD.org> Subject: Getting www/libxul19 building with clang Message-ID: <51040DFC.7090008@FreeBSD.org>
next in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format. --------------040708090305020707050703 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Hi, I got several reports about www/libxul19 not building with clang. I had a look, and gathered a bunch of upstream patches which make it build correctly. I am not sure how to run the test suite though, so if somebody could please verify it behaves correctly at runtime, that would be great. -Dimitry --------------040708090305020707050703 Content-Type: text/x-diff; name="www__libxul19-1.diff" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="www__libxul19-1.diff" Index: www/libxul19/files/patch-bug573210 =================================================================== --- www/libxul19/files/patch-bug573210 (revision 0) +++ www/libxul19/files/patch-bug573210 (working copy) @@ -0,0 +1,223 @@ +changeset: 46457:2c778979f15a +user: Eli Friedman <sharparrow1@yahoo.com> +date: Wed Jun 30 23:11:43 2010 +0200 +summary: Bug 573210 - Consistently qualify accesses to dependent base classes in xpcom C++ code. r=dbaron + +diff -r 93fabb73299b -r 2c778979f15a xpcom/base/nsAutoRef.h +--- xpcom/base/nsAutoRef.h Wed Jun 30 23:11:41 2010 +0200 ++++ xpcom/base/nsAutoRef.h Wed Jun 30 23:11:43 2010 +0200 +@@ -301,7 +301,7 @@ + } + ThisClass& operator=(RawRef aRefToCopy) + { +- own(aRefToCopy); ++ this->own(aRefToCopy); + SafeAddRef(); + return *this; + } +@@ -323,7 +323,7 @@ + void SafeAddRef() + { + if (this->HaveResource()) +- AddRef(this->get()); ++ this->AddRef(this->get()); + } + }; + +@@ -690,7 +690,7 @@ + void SafeRelease() + { + if (this->HaveResource()) +- Release(this->get()); ++ this->Release(this->get()); + } + }; + +diff -r 93fabb73299b -r 2c778979f15a xpcom/glue/nsBaseHashtable.h +--- xpcom/glue/nsBaseHashtable.h Wed Jun 30 23:11:41 2010 +0200 ++++ xpcom/glue/nsBaseHashtable.h Wed Jun 30 23:11:43 2010 +0200 +@@ -123,7 +123,7 @@ + */ + PRBool Get(KeyType aKey, UserDataType* pData NS_OUTPARAM) const + { +- EntryType* ent = GetEntry(aKey); ++ EntryType* ent = this->GetEntry(aKey); + + if (!ent) + return PR_FALSE; +@@ -160,7 +160,7 @@ + */ + PRBool Put(KeyType aKey, UserDataType aData) + { +- EntryType* ent = PutEntry(aKey); ++ EntryType* ent = this->PutEntry(aKey); + + if (!ent) + return PR_FALSE; +@@ -174,7 +174,7 @@ + * remove the data for the associated key + * @param aKey the key to remove from the hashtable + */ +- void Remove(KeyType aKey) { RemoveEntry(aKey); } ++ void Remove(KeyType aKey) { this->RemoveEntry(aKey); } + + /** + * function type provided by the application for enumeration. +diff -r 93fabb73299b -r 2c778979f15a xpcom/glue/nsClassHashtable.h +--- xpcom/glue/nsClassHashtable.h Wed Jun 30 23:11:41 2010 +0200 ++++ xpcom/glue/nsClassHashtable.h Wed Jun 30 23:11:43 2010 +0200 +@@ -57,6 +57,7 @@ + public: + typedef typename KeyClass::KeyType KeyType; + typedef T* UserDataType; ++ typedef nsBaseHashtable< KeyClass, nsAutoPtr<T>, T* > base_type; + + /** + * @copydoc nsBaseHashtable::Get +@@ -80,6 +81,7 @@ + public: + typedef typename KeyClass::KeyType KeyType; + typedef T* UserDataType; ++ typedef nsBaseHashtableMT< KeyClass, nsAutoPtr<T>, T* > base_type; + + /** + * @copydoc nsBaseHashtable::Get +@@ -97,8 +99,7 @@ + PRBool + nsClassHashtable<KeyClass,T>::Get(KeyType aKey, T** retVal) const + { +- typename nsBaseHashtable<KeyClass,nsAutoPtr<T>,T*>::EntryType* ent = +- GetEntry(aKey); ++ typename base_type::EntryType* ent = this->GetEntry(aKey); + + if (ent) + { +@@ -125,8 +126,7 @@ + { + PR_Lock(this->mLock); + +- typename nsBaseHashtableMT<KeyClass,nsAutoPtr<T>,T*>::EntryType* ent = +- GetEntry(aKey); ++ typename base_type::EntryType* ent = this->GetEntry(aKey); + + if (ent) + { +diff -r 93fabb73299b -r 2c778979f15a xpcom/glue/nsInterfaceHashtable.h +--- xpcom/glue/nsInterfaceHashtable.h Wed Jun 30 23:11:41 2010 +0200 ++++ xpcom/glue/nsInterfaceHashtable.h Wed Jun 30 23:11:43 2010 +0200 +@@ -57,6 +57,8 @@ + public: + typedef typename KeyClass::KeyType KeyType; + typedef Interface* UserDataType; ++ typedef nsBaseHashtable< KeyClass, nsCOMPtr<Interface> , Interface* > ++ base_type; + + /** + * @copydoc nsBaseHashtable::Get +@@ -87,6 +89,8 @@ + public: + typedef typename KeyClass::KeyType KeyType; + typedef Interface* UserDataType; ++ typedef nsBaseHashtableMT< KeyClass, nsCOMPtr<Interface> , Interface* > ++ base_type; + + /** + * @copydoc nsBaseHashtable::Get +@@ -110,8 +114,7 @@ + nsInterfaceHashtable<KeyClass,Interface>::Get + (KeyType aKey, UserDataType* pInterface) const + { +- typename nsBaseHashtable<KeyClass, nsCOMPtr<Interface>, Interface*>::EntryType* ent = +- GetEntry(aKey); ++ typename base_type::EntryType* ent = this->GetEntry(aKey); + + if (ent) + { +@@ -138,8 +141,7 @@ + nsInterfaceHashtable<KeyClass,Interface>::GetWeak + (KeyType aKey, PRBool* aFound) const + { +- typename nsBaseHashtable<KeyClass, nsCOMPtr<Interface>, Interface*>::EntryType* ent = +- GetEntry(aKey); ++ typename base_type::EntryType* ent = this->GetEntry(aKey); + + if (ent) + { +@@ -166,8 +168,7 @@ + { + PR_Lock(this->mLock); + +- typename nsBaseHashtableMT<KeyClass, nsCOMPtr<Interface>, Interface*>::EntryType* ent = +- GetEntry(aKey); ++ typename base_type::EntryType* ent = this->GetEntry(aKey); + + if (ent) + { +diff -r 93fabb73299b -r 2c778979f15a xpcom/glue/nsRefPtrHashtable.h +--- xpcom/glue/nsRefPtrHashtable.h Wed Jun 30 23:11:41 2010 +0200 ++++ xpcom/glue/nsRefPtrHashtable.h Wed Jun 30 23:11:43 2010 +0200 +@@ -58,6 +58,7 @@ + public: + typedef typename KeyClass::KeyType KeyType; + typedef RefPtr* UserDataType; ++ typedef nsBaseHashtable< KeyClass, nsRefPtr<RefPtr> , RefPtr* > base_type; + + /** + * @copydoc nsBaseHashtable::Get +@@ -88,6 +89,7 @@ + public: + typedef typename KeyClass::KeyType KeyType; + typedef RefPtr* UserDataType; ++ typedef nsBaseHashtableMT< KeyClass, nsRefPtr<RefPtr> , RefPtr* > base_type; + + /** + * @copydoc nsBaseHashtable::Get +@@ -111,8 +113,7 @@ + nsRefPtrHashtable<KeyClass,RefPtr>::Get + (KeyType aKey, UserDataType* pRefPtr) const + { +- typename nsBaseHashtable<KeyClass, nsRefPtr<RefPtr>, RefPtr*>::EntryType* ent = +- GetEntry(aKey); ++ typename base_type::EntryType* ent = this->GetEntry(aKey); + + if (ent) + { +@@ -139,8 +140,7 @@ + nsRefPtrHashtable<KeyClass,RefPtr>::GetWeak + (KeyType aKey, PRBool* aFound) const + { +- typename nsBaseHashtable<KeyClass, nsRefPtr<RefPtr>, RefPtr*>::EntryType* ent = +- GetEntry(aKey); ++ typename base_type::EntryType* ent = this->GetEntry(aKey); + + if (ent) + { +@@ -167,8 +167,7 @@ + { + PR_Lock(this->mLock); + +- typename nsBaseHashtableMT<KeyClass, nsRefPtr<RefPtr>, RefPtr*>::EntryType* ent = +- GetEntry(aKey); ++ typename base_type::EntryType* ent = this->GetEntry(aKey); + + if (ent) + { +diff -r 93fabb73299b -r 2c778979f15a xpcom/glue/nsTPtrArray.h +--- xpcom/glue/nsTPtrArray.h Wed Jun 30 23:11:41 2010 +0200 ++++ xpcom/glue/nsTPtrArray.h Wed Jun 30 23:11:43 2010 +0200 +@@ -64,13 +64,13 @@ + + // Initialize this array and pre-allocate some number of elements. + explicit nsTPtrArray(size_type capacity) { +- SetCapacity(capacity); ++ this->SetCapacity(capacity); + } + + // The array's copy-constructor performs a 'deep' copy of the given array. + // @param other The array object to copy. + nsTPtrArray(const self_type& other) { +- AppendElements(other); ++ this->AppendElements(other); + } + + // Index: www/libxul19/files/patch-bug579689 =================================================================== --- www/libxul19/files/patch-bug579689 (revision 0) +++ www/libxul19/files/patch-bug579689 (working copy) @@ -0,0 +1,66 @@ +changeset: 47875:d9d236a8d274 +user: Eli Friedman <sharparrow1@yahoo.com> +date: Sun Jul 18 11:19:48 2010 +0200 +summary: Bug 579689 - Fix cases of return without expression in a function returning "int". r=khuey + +diff -r d9555a5522cf -r d9d236a8d274 build/autoconf/moznbytetype.m4 +--- build/autoconf/moznbytetype.m4 Sun Jul 18 11:17:14 2010 +0200 ++++ build/autoconf/moznbytetype.m4 Sun Jul 18 11:19:48 2010 +0200 +@@ -60,7 +60,7 @@ + AC_TRY_COMPILE([], + [ + int a[sizeof ($type) == $2 ? 1 : -1]; +- return; ++ return 0; + ], + [moz_cv_n_byte_type_$1=$type; break], []) + done +@@ -91,7 +91,7 @@ + AC_TRY_COMPILE([], + [ + int a[sizeof ($2) == $size ? 1 : -1]; +- return; ++ return 0; + ], + [moz_cv_size_of_$1=$size; break], []) + done +@@ -124,7 +124,7 @@ + ], + [ + int a[offsetof(struct aligner, a) == $align ? 1 : -1]; +- return; ++ return 0; + ], + [moz_cv_align_of_$1=$align; break], []) + done +diff -r d9555a5522cf -r d9d236a8d274 js/src/build/autoconf/moznbytetype.m4 +--- js/src/build/autoconf/moznbytetype.m4 Sun Jul 18 11:17:14 2010 +0200 ++++ js/src/build/autoconf/moznbytetype.m4 Sun Jul 18 11:19:48 2010 +0200 +@@ -60,7 +60,7 @@ + AC_TRY_COMPILE([], + [ + int a[sizeof ($type) == $2 ? 1 : -1]; +- return; ++ return 0; + ], + [moz_cv_n_byte_type_$1=$type; break], []) + done +@@ -91,7 +91,7 @@ + AC_TRY_COMPILE([], + [ + int a[sizeof ($2) == $size ? 1 : -1]; +- return; ++ return 0; + ], + [moz_cv_size_of_$1=$size; break], []) + done +@@ -124,7 +124,7 @@ + ], + [ + int a[offsetof(struct aligner, a) == $align ? 1 : -1]; +- return; ++ return 0; + ], + [moz_cv_align_of_$1=$align; break], []) + done + Index: www/libxul19/files/patch-bug623126 =================================================================== --- www/libxul19/files/patch-bug623126 (revision 0) +++ www/libxul19/files/patch-bug623126 (working copy) @@ -0,0 +1,49 @@ +changeset: 63904:ca41c5663999 +user: Rafael ?vila de Esp?ndola <respindola@mozilla.com> +date: Thu Mar 24 19:26:55 2011 -0400 +summary: Bug 623126 - Add constructor for nsDebugImpl, nsTraceRefcntImpl, EmptyEnumeratorImpl, and nsSimpleUnicharStreamFactory to placate CLang; r=bsmedberg + +diff -r 92b43aa07b7d -r ca41c5663999 xpcom/base/nsDebugImpl.h +--- xpcom/base/nsDebugImpl.h Thu Mar 24 16:45:07 2011 -0400 ++++ xpcom/base/nsDebugImpl.h Thu Mar 24 19:26:55 2011 -0400 +@@ -40,6 +40,7 @@ + class nsDebugImpl : public nsIDebug2 + { + public: ++ nsDebugImpl() {} + NS_DECL_ISUPPORTS + NS_DECL_NSIDEBUG + NS_DECL_NSIDEBUG2 +diff -r 92b43aa07b7d -r ca41c5663999 xpcom/base/nsTraceRefcntImpl.h +--- xpcom/base/nsTraceRefcntImpl.h Thu Mar 24 16:45:07 2011 -0400 ++++ xpcom/base/nsTraceRefcntImpl.h Thu Mar 24 19:26:55 2011 -0400 +@@ -44,6 +44,7 @@ + class nsTraceRefcntImpl : public nsITraceRefcnt + { + public: ++ nsTraceRefcntImpl() {} + NS_DECL_ISUPPORTS + NS_DECL_NSITRACEREFCNT + +diff -r 92b43aa07b7d -r ca41c5663999 xpcom/glue/nsEnumeratorUtils.cpp +--- xpcom/glue/nsEnumeratorUtils.cpp Thu Mar 24 16:45:07 2011 -0400 ++++ xpcom/glue/nsEnumeratorUtils.cpp Thu Mar 24 19:26:55 2011 -0400 +@@ -52,6 +52,7 @@ + public nsIStringEnumerator + { + public: ++ EmptyEnumeratorImpl() {} + // nsISupports interface + NS_DECL_ISUPPORTS_INHERITED // not really inherited, but no mRefCnt + +diff -r 92b43aa07b7d -r ca41c5663999 xpcom/io/nsUnicharInputStream.h +--- xpcom/io/nsUnicharInputStream.h Thu Mar 24 16:45:07 2011 -0400 ++++ xpcom/io/nsUnicharInputStream.h Thu Mar 24 19:26:55 2011 -0400 +@@ -51,6 +51,7 @@ + private nsISimpleUnicharStreamFactory + { + public: ++ nsSimpleUnicharStreamFactory() {} + NS_DECL_ISUPPORTS_INHERITED + NS_DECL_NSIFACTORY + NS_DECL_NSISIMPLEUNICHARSTREAMFACTORY Index: www/libxul19/files/patch-bug778078 =================================================================== --- www/libxul19/files/patch-bug778078 (revision 310976) +++ www/libxul19/files/patch-bug778078 (working copy) @@ -1,6 +1,14 @@ --- toolkit/xre/nsAppRunner.cpp~ +++ toolkit/xre/nsAppRunner.cpp -@@ -3046,7 +3046,7 @@ XRE_main(int argc, char* argv[], const n +@@ -640,6 +640,7 @@ class nsXULAppInfo : public nsIXULAppInf + + { + public: ++ nsXULAppInfo() {} + NS_DECL_ISUPPORTS_INHERITED + NS_DECL_NSIXULAPPINFO + NS_DECL_NSIXULRUNTIME +@@ -3046,7 +3047,7 @@ XRE_main(int argc, char* argv[], const n QApplication app(gArgc, gArgv); #endif #if defined(MOZ_WIDGET_GTK2) Index: www/libxul19/files/patch-dom-src-threads-nsDOMWorker.h =================================================================== --- www/libxul19/files/patch-dom-src-threads-nsDOMWorker.h (revision 0) +++ www/libxul19/files/patch-dom-src-threads-nsDOMWorker.h (working copy) @@ -0,0 +1,11 @@ +--- dom/src/threads/nsDOMWorker.h.orig 2012-03-06 15:45:25.000000000 +0100 ++++ dom/src/threads/nsDOMWorker.h 2012-10-28 01:42:16.000000000 +0200 +@@ -74,7 +74,7 @@ class nsDOMWorkerScope : public nsDOMWor + { + friend class nsDOMWorker; + +- typedef nsresult (NS_STDCALL nsDOMWorkerScope::*SetListenerFunc) ++ typedef nsresult (NS_DEFCALL nsDOMWorkerScope::*SetListenerFunc) + (nsIDOMEventListener*); + + public: Index: www/libxul19/files/patch-dom-src-threads-nsDOMWorkerXHRProxy.h =================================================================== --- www/libxul19/files/patch-dom-src-threads-nsDOMWorkerXHRProxy.h (revision 0) +++ www/libxul19/files/patch-dom-src-threads-nsDOMWorkerXHRProxy.h (working copy) @@ -0,0 +1,11 @@ +--- dom/src/threads/nsDOMWorkerXHRProxy.h.orig 2012-10-28 01:49:37.000000000 +0200 ++++ dom/src/threads/nsDOMWorkerXHRProxy.h 2012-10-28 01:49:45.000000000 +0200 +@@ -74,7 +74,7 @@ class nsDOMWorkerXHRProxy : public nsIRu + friend class nsDOMWorkerXHR; + friend class nsDOMWorkerXHRUpload; + +- typedef nsresult (NS_STDCALL nsIDOMEventTarget::*EventListenerFunction) ++ typedef nsresult (NS_DEFCALL nsIDOMEventTarget::*EventListenerFunction) + (const nsAString&, nsIDOMEventListener*, PRBool); + + public: Index: www/libxul19/files/patch-embedding-browser-gtk-src-EmbedPrivate.cpp =================================================================== --- www/libxul19/files/patch-embedding-browser-gtk-src-EmbedPrivate.cpp (revision 0) +++ www/libxul19/files/patch-embedding-browser-gtk-src-EmbedPrivate.cpp (working copy) @@ -0,0 +1,10 @@ +--- embedding/browser/gtk/src/EmbedPrivate.cpp.orig 2012-03-06 15:45:28.000000000 +0100 ++++ embedding/browser/gtk/src/EmbedPrivate.cpp 2012-10-28 12:09:45.000000000 +0100 +@@ -104,6 +104,7 @@ nsIDirectoryServiceProvider *EmbedPrivat + class GTKEmbedDirectoryProvider : public nsIDirectoryServiceProvider2 + { + public: ++ GTKEmbedDirectoryProvider() {} + NS_DECL_ISUPPORTS_INHERITED + NS_DECL_NSIDIRECTORYSERVICEPROVIDER + NS_DECL_NSIDIRECTORYSERVICEPROVIDER2 Index: www/libxul19/files/patch-intl-unicharutil-util-nsUnicharUtils.h =================================================================== --- www/libxul19/files/patch-intl-unicharutil-util-nsUnicharUtils.h (revision 0) +++ www/libxul19/files/patch-intl-unicharutil-util-nsUnicharUtils.h (working copy) @@ -0,0 +1,11 @@ +--- intl/unicharutil/util/nsUnicharUtils.h.orig 2012-10-28 10:53:41.000000000 +0100 ++++ intl/unicharutil/util/nsUnicharUtils.h 2012-10-28 10:54:01.000000000 +0100 +@@ -72,6 +72,8 @@ inline PRBool IsLowerCase(PRUnichar c) { + class nsCaseInsensitiveStringComparator : public nsStringComparator + { + public: ++ nsCaseInsensitiveStringComparator() {} ++ + virtual int operator() (const PRUnichar*, + const PRUnichar*, + PRUint32 aLength) const; --------------040708090305020707050703--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?51040DFC.7090008>