Re: [PATCH, i386, Android] Enable exceptions and RTTI by default for Android
On Mon, Feb 27, 2012 at 12:28 AM, Ilya Enkovich wrote: >> My comment is(was) not on the format of the patch. Instead, I am >> thinking whether Android toolchain customer, which is Android AOSP, >> wants this patch. >> >> I don't know the scenario behind this patch. I think the question >> behind this patch is, if RTTI and exceptions are enabled by default, >> who is supposed to handle RTTI and exceptions by default? The answer >> is no answer, for now. >> >> Android AOSP tree provides very limited C++ support. Android NDK >> provides four options for C++ support. Some of the options support >> both exceptions and rttit, some options only support rtti. >> >> Therefore I guess Android AOSP probably would not like to enable >> exceptions and RTTI by default. > > Actually when you rebuild Android NDK similar patch (named > 0001-Enable-C-exceptions-and-RTTI-by-default.patch) is applied to GCC > sources before toolchain rebuild. Right. The patch is used to build NDK toolchain which is to build NDK applications, and NDK offers several options for RTTI and exception support. But Android AOSP platform does not support exception, and the toolchain to build Android AOSP platform does not use this patch. That's why the patch exists in NDK package, not in AOSP toolchain source repository. Thanks, Jing > > Ilya > >> >> Questions/complaints/requests on Android limited C++ support, should >> go to Android forum. >> Questions about license concerns, should go to Android AOSP lawyer. >> >> Thanks, >> Jing >> >> On Fri, Feb 24, 2012 at 2:36 AM, Richard Guenther >> wrote: >>> On Fri, Feb 24, 2012 at 11:22 AM, Ilya Enkovich >>> wrote: > On Wed, Feb 22, 2012 at 3:57 PM, Ilya Enkovich > wrote: >> Hello, >> >> Here is a simple patch which enables exceptions and RTTI by default >> for Android target. OK for trunk? > > Err - isn't that the default? Thus, simply delete the bogus spec? > > Richard. > > Hi, Is following patch OK or it's better to remove whole macro and its usages? >>> >>> The latter. >>> >>> Richard. >>> Thanks, Ilya -- 2012-02-22 Enkovich Ilya * gcc/config/linux-android.h (ANDROID_CC1PLUS_SPEC): Enable exceptions and rtti by default. diff --git a/gcc/config/linux-android.h b/gcc/config/linux-android.h index 94c5274..180b62b 100644 --- a/gcc/config/linux-android.h +++ b/gcc/config/linux-android.h @@ -45,9 +45,7 @@ "%{!mglibc:%{!muclibc:%{!mbionic: -mbionic}}} " \ "%{!fno-pic:%{!fno-PIC:%{!fpic:%{!fPIC: -fPIC" -#define ANDROID_CC1PLUS_SPEC \ - "%{!fexceptions:%{!fno-exceptions: -fno-exceptions}} " \ - "%{!frtti:%{!fno-rtti: -fno-rtti}}" +#define ANDROID_CC1PLUS_SPEC "" #define ANDROID_LIB_SPEC \ "%{!static: -ldl}"
Re: [PATCH, i386, Android] Enable exceptions and RTTI by default for Android
> My comment is(was) not on the format of the patch. Instead, I am > thinking whether Android toolchain customer, which is Android AOSP, > wants this patch. > > I don't know the scenario behind this patch. I think the question > behind this patch is, if RTTI and exceptions are enabled by default, > who is supposed to handle RTTI and exceptions by default? The answer > is no answer, for now. > > Android AOSP tree provides very limited C++ support. Android NDK > provides four options for C++ support. Some of the options support > both exceptions and rttit, some options only support rtti. > > Therefore I guess Android AOSP probably would not like to enable > exceptions and RTTI by default. Actually when you rebuild Android NDK similar patch (named 0001-Enable-C-exceptions-and-RTTI-by-default.patch) is applied to GCC sources before toolchain rebuild. Ilya > > Questions/complaints/requests on Android limited C++ support, should > go to Android forum. > Questions about license concerns, should go to Android AOSP lawyer. > > Thanks, > Jing > > On Fri, Feb 24, 2012 at 2:36 AM, Richard Guenther > wrote: >> On Fri, Feb 24, 2012 at 11:22 AM, Ilya Enkovich >> wrote: On Wed, Feb 22, 2012 at 3:57 PM, Ilya Enkovich wrote: > Hello, > > Here is a simple patch which enables exceptions and RTTI by default > for Android target. OK for trunk? Err - isn't that the default? Thus, simply delete the bogus spec? Richard. >>> Hi, >>> >>> Is following patch OK or it's better to remove whole macro and its usages? >> >> The latter. >> >> Richard. >> >>> Thanks, >>> Ilya >>> -- >>> 2012-02-22 Enkovich Ilya >>> >>> * gcc/config/linux-android.h (ANDROID_CC1PLUS_SPEC): Enable >>> exceptions and rtti by default. >>> >>> >>> diff --git a/gcc/config/linux-android.h b/gcc/config/linux-android.h >>> index 94c5274..180b62b 100644 >>> --- a/gcc/config/linux-android.h >>> +++ b/gcc/config/linux-android.h >>> @@ -45,9 +45,7 @@ >>> "%{!mglibc:%{!muclibc:%{!mbionic: -mbionic}}} " \ >>> "%{!fno-pic:%{!fno-PIC:%{!fpic:%{!fPIC: -fPIC" >>> >>> -#define ANDROID_CC1PLUS_SPEC \ >>> - "%{!fexceptions:%{!fno-exceptions: -fno-exceptions}} " \ >>> - "%{!frtti:%{!fno-rtti: -fno-rtti}}" >>> +#define ANDROID_CC1PLUS_SPEC "" >>> >>> #define ANDROID_LIB_SPEC \ >>> "%{!static: -ldl}"
Re: [PATCH, i386, Android] Enable exceptions and RTTI by default for Android
My comment is(was) not on the format of the patch. Instead, I am thinking whether Android toolchain customer, which is Android AOSP, wants this patch. I don't know the scenario behind this patch. I think the question behind this patch is, if RTTI and exceptions are enabled by default, who is supposed to handle RTTI and exceptions by default? The answer is no answer, for now. Android AOSP tree provides very limited C++ support. Android NDK provides four options for C++ support. Some of the options support both exceptions and rttit, some options only support rtti. Therefore I guess Android AOSP probably would not like to enable exceptions and RTTI by default. Questions/complaints/requests on Android limited C++ support, should go to Android forum. Questions about license concerns, should go to Android AOSP lawyer. Thanks, Jing On Fri, Feb 24, 2012 at 2:36 AM, Richard Guenther wrote: > On Fri, Feb 24, 2012 at 11:22 AM, Ilya Enkovich > wrote: >>> On Wed, Feb 22, 2012 at 3:57 PM, Ilya Enkovich >>> wrote: Hello, Here is a simple patch which enables exceptions and RTTI by default for Android target. OK for trunk? >>> >>> Err - isn't that the default? Thus, simply delete the bogus spec? >>> >>> Richard. >>> >>> >> Hi, >> >> Is following patch OK or it's better to remove whole macro and its usages? > > The latter. > > Richard. > >> Thanks, >> Ilya >> -- >> 2012-02-22 Enkovich Ilya >> >> * gcc/config/linux-android.h (ANDROID_CC1PLUS_SPEC): Enable >> exceptions and rtti by default. >> >> >> diff --git a/gcc/config/linux-android.h b/gcc/config/linux-android.h >> index 94c5274..180b62b 100644 >> --- a/gcc/config/linux-android.h >> +++ b/gcc/config/linux-android.h >> @@ -45,9 +45,7 @@ >> "%{!mglibc:%{!muclibc:%{!mbionic: -mbionic}}} " \ >> "%{!fno-pic:%{!fno-PIC:%{!fpic:%{!fPIC: -fPIC" >> >> -#define ANDROID_CC1PLUS_SPEC \ >> - "%{!fexceptions:%{!fno-exceptions: -fno-exceptions}} " \ >> - "%{!frtti:%{!fno-rtti: -fno-rtti}}" >> +#define ANDROID_CC1PLUS_SPEC "" >> >> #define ANDROID_LIB_SPEC \ >> "%{!static: -ldl}"
Re: [PATCH, i386, Android] Enable exceptions and RTTI by default for Android
On Fri, Feb 24, 2012 at 11:22 AM, Ilya Enkovich wrote: >> On Wed, Feb 22, 2012 at 3:57 PM, Ilya Enkovich >> wrote: >>> Hello, >>> >>> Here is a simple patch which enables exceptions and RTTI by default >>> for Android target. OK for trunk? >> >> Err - isn't that the default? Thus, simply delete the bogus spec? >> >> Richard. >> >> > Hi, > > Is following patch OK or it's better to remove whole macro and its usages? The latter. Richard. > Thanks, > Ilya > -- > 2012-02-22 Enkovich Ilya > > * gcc/config/linux-android.h (ANDROID_CC1PLUS_SPEC): Enable > exceptions and rtti by default. > > > diff --git a/gcc/config/linux-android.h b/gcc/config/linux-android.h > index 94c5274..180b62b 100644 > --- a/gcc/config/linux-android.h > +++ b/gcc/config/linux-android.h > @@ -45,9 +45,7 @@ > "%{!mglibc:%{!muclibc:%{!mbionic: -mbionic}}} " \ > "%{!fno-pic:%{!fno-PIC:%{!fpic:%{!fPIC: -fPIC" > > -#define ANDROID_CC1PLUS_SPEC \ > - "%{!fexceptions:%{!fno-exceptions: -fno-exceptions}} " \ > - "%{!frtti:%{!fno-rtti: -fno-rtti}}" > +#define ANDROID_CC1PLUS_SPEC "" > > #define ANDROID_LIB_SPEC \ > "%{!static: -ldl}"
Re: [PATCH, i386, Android] Enable exceptions and RTTI by default for Android
> On Wed, Feb 22, 2012 at 3:57 PM, Ilya Enkovich wrote: >> Hello, >> >> Here is a simple patch which enables exceptions and RTTI by default >> for Android target. OK for trunk? > > Err - isn't that the default? Thus, simply delete the bogus spec? > > Richard. > > Hi, Is following patch OK or it's better to remove whole macro and its usages? Thanks, Ilya -- 2012-02-22 Enkovich Ilya * gcc/config/linux-android.h (ANDROID_CC1PLUS_SPEC): Enable exceptions and rtti by default. diff --git a/gcc/config/linux-android.h b/gcc/config/linux-android.h index 94c5274..180b62b 100644 --- a/gcc/config/linux-android.h +++ b/gcc/config/linux-android.h @@ -45,9 +45,7 @@ "%{!mglibc:%{!muclibc:%{!mbionic: -mbionic}}} " \ "%{!fno-pic:%{!fno-PIC:%{!fpic:%{!fPIC: -fPIC" -#define ANDROID_CC1PLUS_SPEC \ - "%{!fexceptions:%{!fno-exceptions: -fno-exceptions}} " \ - "%{!frtti:%{!fno-rtti: -fno-rtti}}" +#define ANDROID_CC1PLUS_SPEC "" #define ANDROID_LIB_SPEC \ "%{!static: -ldl}"
Re: [PATCH, i386, Android] Enable exceptions and RTTI by default for Android
On Wed, Feb 22, 2012 at 8:20 PM, Jing Yu wrote: > So far, Android ARM toolchain, which builds Android platform for ARM > boards, does not enable RTTI and exceptions by default. There are > license concerns with the use of GNU libstdc++ and libsupc++. That, of course, does not answer my question why >>> + "%{!fexceptions:%{!fno-exceptions: -fexceptions}} " \ >>> + "%{!frtti:%{!fno-rtti: -frtti}}" is not a no-op. Richard. > Thanks, > Jing > > On Wed, Feb 22, 2012 at 7:07 AM, Richard Guenther > wrote: >> On Wed, Feb 22, 2012 at 3:57 PM, Ilya Enkovich >> wrote: >>> Hello, >>> >>> Here is a simple patch which enables exceptions and RTTI by default >>> for Android target. OK for trunk? >> >> Err - isn't that the default? Thus, simply delete the bogus spec? >> >> Richard. >> >> >>> Thanks, >>> Ilya >>> -- >>> >>> 2012-02-22 Enkovich Ilya >>> >>> * gcc/config/linux-android.h (ANDROID_CC1PLUS_SPEC): Enable >>> exceptions and rtti by default. >>> >>> >>> diff --git a/gcc/config/linux-android.h b/gcc/config/linux-android.h >>> index 94c5274..7256082 100644 >>> --- a/gcc/config/linux-android.h >>> +++ b/gcc/config/linux-android.h >>> @@ -46,8 +46,8 @@ >>> "%{!fno-pic:%{!fno-PIC:%{!fpic:%{!fPIC: -fPIC" >>> >>> #define ANDROID_CC1PLUS_SPEC \ >>> - "%{!fexceptions:%{!fno-exceptions: -fno-exceptions}} " \ >>> - "%{!frtti:%{!fno-rtti: -fno-rtti}}" >>> + "%{!fexceptions:%{!fno-exceptions: -fexceptions}} " \ >>> + "%{!frtti:%{!fno-rtti: -frtti}}" >>> >>> #define ANDROID_LIB_SPEC \ >>> "%{!static: -ldl}"
Re: [PATCH, i386, Android] Enable exceptions and RTTI by default for Android
On Wed, Feb 22, 2012 at 11:20 AM, Jing Yu wrote: > So far, Android ARM toolchain, which builds Android platform for ARM > boards, does not enable RTTI and exceptions by default. There are > license concerns with the use of GNU libstdc++ and libsupc++. > I am not a lawyer. From http://www.gnu.org/licenses/gcc-exception-faq.html I use a proprietary compiler toolchain without any parts of GCC to compile my program, and link it with libstdc++. My program itself does not include any runtime library code the same way that GCC-compiled programs include libgcc. Can I still take advantage of the exception? Yes. While combining libgcc with GCC-compiled object code is probably the most common way the exception is used, neither the GPL nor the GCC Runtime Library Exception distinguish between static linking, dynamic linking, and other methods for combining code in their conditions. The same permissions are available to you, under the same terms, no matter which method you use. It indicates both libstdc++.a and libstdc++.so are covered by GPLv3 run-time exception. -- H.J.
Re: [PATCH, i386, Android] Enable exceptions and RTTI by default for Android
So far, Android ARM toolchain, which builds Android platform for ARM boards, does not enable RTTI and exceptions by default. There are license concerns with the use of GNU libstdc++ and libsupc++. Thanks, Jing On Wed, Feb 22, 2012 at 7:07 AM, Richard Guenther wrote: > On Wed, Feb 22, 2012 at 3:57 PM, Ilya Enkovich wrote: >> Hello, >> >> Here is a simple patch which enables exceptions and RTTI by default >> for Android target. OK for trunk? > > Err - isn't that the default? Thus, simply delete the bogus spec? > > Richard. > > >> Thanks, >> Ilya >> -- >> >> 2012-02-22 Enkovich Ilya >> >> * gcc/config/linux-android.h (ANDROID_CC1PLUS_SPEC): Enable >> exceptions and rtti by default. >> >> >> diff --git a/gcc/config/linux-android.h b/gcc/config/linux-android.h >> index 94c5274..7256082 100644 >> --- a/gcc/config/linux-android.h >> +++ b/gcc/config/linux-android.h >> @@ -46,8 +46,8 @@ >> "%{!fno-pic:%{!fno-PIC:%{!fpic:%{!fPIC: -fPIC" >> >> #define ANDROID_CC1PLUS_SPEC \ >> - "%{!fexceptions:%{!fno-exceptions: -fno-exceptions}} " \ >> - "%{!frtti:%{!fno-rtti: -fno-rtti}}" >> + "%{!fexceptions:%{!fno-exceptions: -fexceptions}} " \ >> + "%{!frtti:%{!fno-rtti: -frtti}}" >> >> #define ANDROID_LIB_SPEC \ >> "%{!static: -ldl}"
Re: [PATCH, i386, Android] Enable exceptions and RTTI by default for Android
On Wed, Feb 22, 2012 at 3:57 PM, Ilya Enkovich wrote: > Hello, > > Here is a simple patch which enables exceptions and RTTI by default > for Android target. OK for trunk? Err - isn't that the default? Thus, simply delete the bogus spec? Richard. > Thanks, > Ilya > -- > > 2012-02-22 Enkovich Ilya > > * gcc/config/linux-android.h (ANDROID_CC1PLUS_SPEC): Enable > exceptions and rtti by default. > > > diff --git a/gcc/config/linux-android.h b/gcc/config/linux-android.h > index 94c5274..7256082 100644 > --- a/gcc/config/linux-android.h > +++ b/gcc/config/linux-android.h > @@ -46,8 +46,8 @@ > "%{!fno-pic:%{!fno-PIC:%{!fpic:%{!fPIC: -fPIC" > > #define ANDROID_CC1PLUS_SPEC \ > - "%{!fexceptions:%{!fno-exceptions: -fno-exceptions}} " \ > - "%{!frtti:%{!fno-rtti: -fno-rtti}}" > + "%{!fexceptions:%{!fno-exceptions: -fexceptions}} " \ > + "%{!frtti:%{!fno-rtti: -frtti}}" > > #define ANDROID_LIB_SPEC \ > "%{!static: -ldl}"