Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
core
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
LibreOffice
core
Commits
fcf01583
Kaydet (Commit)
fcf01583
authored
Eyl 10, 2014
tarafından
Stephan Bergmann
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
(Rudimentary) C++11 support is a hard requirement now
Change-Id: I43ed776d52336b822aa6152f0f2a29e39303bb75
üst
2f1a28cf
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
92 additions
and
151 deletions
+92
-151
config_host.mk.in
config_host.mk.in
+0
-1
config_global.h.in
config_host/config_global.h.in
+0
-2
configure.ac
configure.ac
+84
-111
HelpCompiler.hxx
helpcompiler/inc/HelpCompiler.hxx
+1
-4
diagnose.hxx
include/osl/diagnose.hxx
+0
-5
macosx.mk
solenv/gbuild/platform/macosx.mk
+1
-1
mingw.mk
solenv/gbuild/platform/mingw.mk
+1
-5
solaris.mk
solenv/gbuild/platform/solaris.mk
+2
-7
unxgcc.mk
solenv/gbuild/platform/unxgcc.mk
+2
-7
databases.hxx
xmlhelp/source/cxxhelp/provider/databases.hxx
+1
-4
db.hxx
xmlhelp/source/cxxhelp/provider/db.hxx
+0
-4
No files found.
config_host.mk.in
Dosyayı görüntüle @
fcf01583
...
...
@@ -241,7 +241,6 @@ export GTK_PRINT_CFLAGS=$(gb_SPACE)@GTK_PRINT_CFLAGS@
export GTK_PRINT_LIBS=$(gb_SPACE)@GTK_PRINT_LIBS@
export GUIBASE=@GUIBASE@
export HARDLINKDELIVER=@HARDLINKDELIVER@
export HAVE_CXX11=@HAVE_CXX11@
export HAVE_GCC_AVX=@HAVE_GCC_AVX@
export HAVE_GCC_BUILTIN_ATOMIC=@HAVE_GCC_BUILTIN_ATOMIC@
export HAVE_GCC_FINLINE_LIMIT=@HAVE_GCC_FINLINE_LIMIT@
...
...
config_host/config_global.h.in
Dosyayı görüntüle @
fcf01583
...
...
@@ -12,8 +12,6 @@ Any change in this header will cause a rebuild of almost everything.
#ifndef CONFIG_GLOBAL_H
#define CONFIG_GLOBAL_H
/* Prefer using a feature-specific check such as HAVE_CXX11_DELETE to the generic HAVE_CXX11. */
#define HAVE_CXX11 0
#define HAVE_CXX11_DELETE 0
#define HAVE_CXX11_OVERRIDE 0
#define HAVE_CXX11_FINAL 0
...
...
configure.ac
Dosyayı görüntüle @
fcf01583
...
...
@@ -6109,14 +6109,13 @@ dnl C++11
dnl ===================================================================
CXXFLAGS_CXX11=
HAVE_CXX11=
if test "$COM" = MSC; then
AC_MSG_CHECKING([whether $CXX supports C++11])
AC_MSG_RESULT(yes)
# MSVC supports (a subset of) CXX11 without any switch
HAVE_CXX11=TRUE
CXXFLAGS_CXX11=
elif test "$GCC" = "yes"; then
HAVE_CXX11=
CXXFLAGS_CXX11=
AC_MSG_CHECKING([whether $CXX supports C++11])
for flag in -std=gnu++11 -std=gnu++0x -std=c++11 -std=c++0x ; do
...
...
@@ -6134,7 +6133,7 @@ elif test "$GCC" = "yes"; then
if test "$HAVE_CXX11" = TRUE; then
AC_MSG_RESULT([yes ($CXXFLAGS_CXX11)])
else
AC_MSG_
RESULT
(no)
AC_MSG_
ERROR
(no)
fi
fi
...
...
@@ -6143,7 +6142,7 @@ dnl <https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=179528> introduced
dnl an additional member _M_size into C++11 std::list towards 4.7.0 and
dnl <https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=189186> removed it
dnl again towards 4.7.2:
if test $CPP_LIBRARY = GLIBCXX
-a "$HAVE_CXX11" = TRUE
; then
if test $CPP_LIBRARY = GLIBCXX; then
AC_MSG_CHECKING([whether using C++11 causes libstdc++ 4.7.0/4.7.1 ABI breakage])
AC_LANG_PUSH([C++])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
...
...
@@ -6159,18 +6158,16 @@ if test $CPP_LIBRARY = GLIBCXX -a "$HAVE_CXX11" = TRUE; then
abi broken
#endif
]])], [AC_MSG_RESULT(no, ok)],
[AC_MSG_RESULT(yes, disabling C++11)
HAVE_CXX11=])
[AC_MSG_ERROR(yes)])
AC_LANG_POP([C++])
fi
if test "$HAVE_CXX11" = TRUE; then
AC_MSG_CHECKING([whether $CXX supports C++11 without Language Defect 757])
save_CXXFLAGS=$CXXFLAGS
CXXFLAGS="$CXXFLAGS $CXXFLAGS_CXX11"
AC_LANG_PUSH([C++])
AC_MSG_CHECKING([whether $CXX supports C++11 without Language Defect 757])
save_CXXFLAGS=$CXXFLAGS
CXXFLAGS="$CXXFLAGS $CXXFLAGS_CXX11"
AC_LANG_PUSH([C++])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <stddef.h>
template <typename T, size_t S> char (&sal_n_array_size( T(&)[S] ))[S];
...
...
@@ -6195,21 +6192,17 @@ size_t i = sizeof(sal_n_array_size(thinga));
size_t j = sizeof(sal_n_array_size(thingb));
return !(i != 0 && j != 0);
]])
], [ AC_MSG_RESULT(yes) ],
[ AC_MSG_RESULT(no)
HAVE_CXX11=
])
AC_LANG_POP([C++])
CXXFLAGS=$save_CXXFLAGS
fi
], [ AC_MSG_RESULT(yes) ],
[ AC_MSG_ERROR(no)])
AC_LANG_POP([C++])
CXXFLAGS=$save_CXXFLAGS
if test "$HAVE_CXX11" = TRUE; then
AC_MSG_CHECKING([whether $CXX supports C++11 without __float128 compile error])
save_CXXFLAGS=$CXXFLAGS
CXXFLAGS="$CXXFLAGS $CXXFLAGS_CXX11"
AC_LANG_PUSH([C++])
AC_MSG_CHECKING([whether $CXX supports C++11 without __float128 compile error])
save_CXXFLAGS=$CXXFLAGS
CXXFLAGS="$CXXFLAGS $CXXFLAGS_CXX11"
AC_LANG_PUSH([C++])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <vector>
// some Clang fail when compiling against libstdc++ headers with -std=gnu++0x
// (__float128)
...
...
@@ -6231,35 +6224,23 @@ if test "$HAVE_CXX11" = TRUE; then
// some Clang fail when compiling against libstdc++ headers with -std=gnu++0x
// (__float128)
]])
],
[
AC_MSG_RESULT(yes)
CXXFLAGS_CXX11="$CXXFLAGS_CXX11 -D__float128=void"
],
[
AC_MSG_RESULT(no)
HAVE_CXX11=
])
],
[
AC_MSG_RESULT(yes)
CXXFLAGS_CXX11="$CXXFLAGS_CXX11 -D__float128=void"
],
[
AC_MSG_ERROR(no)
])
])
AC_LANG_POP([C++])
CXXFLAGS=$save_CXXFLAGS
fi
if test "$HAVE_CXX11" = "TRUE"; then
AC_DEFINE(HAVE_CXX11)
elif test -n "$CXXFLAGS_CXX11"; then
AC_MSG_NOTICE([Disabling C++11 support])
CXXFLAGS_CXX11=
elif test "$CPP_LIBRARY" = LIBCPP -a $_os = Darwin; then
AC_MSG_ERROR([Selected libc++ but C++11 support broken])
fi
AC_LANG_POP([C++])
CXXFLAGS=$save_CXXFLAGS
AC_SUBST(CXXFLAGS_CXX11)
AC_SUBST(HAVE_CXX11)
AC_MSG_CHECKING([for std::shared_ptr])
if test "$
HAVE_CXX11" = "TRUE" -a "$
GCC" = "yes"; then
if test "$GCC" = "yes"; then
save_CXXFLAGS=$CXXFLAGS
CXXFLAGS="$CXXFLAGS $CXXFLAGS_CXX11"
AC_LANG_PUSH([C++])
...
...
@@ -6283,38 +6264,35 @@ dnl ==================================
dnl Check for C++11 "= delete" support
dnl ==================================
if test "$HAVE_CXX11" = "TRUE"; then
AC_MSG_CHECKING([whether $CXX supports C++11 = delete syntax])
save_CXXFLAGS=$CXXFLAGS
CXXFLAGS="$CXXFLAGS $CXXFLAGS_CXX11"
AC_LANG_PUSH([C++])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
AC_MSG_CHECKING([whether $CXX supports C++11 = delete syntax])
save_CXXFLAGS=$CXXFLAGS
CXXFLAGS="$CXXFLAGS $CXXFLAGS_CXX11"
AC_LANG_PUSH([C++])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
struct A
{
void test() = delete;
};
]])],[HAVE_CXX11_DELETE=TRUE],[])
AC_LANG_POP([C++])
CXXFLAGS=$save_CXXFLAGS
if test "$HAVE_CXX11_DELETE" = "TRUE"; then
AC_MSG_RESULT([yes])
AC_DEFINE([HAVE_CXX11_DELETE])
else
AC_MSG_RESULT([no])
fi
AC_LANG_POP([C++])
CXXFLAGS=$save_CXXFLAGS
if test "$HAVE_CXX11_DELETE" = "TRUE"; then
AC_MSG_RESULT([yes])
AC_DEFINE([HAVE_CXX11_DELETE])
else
AC_MSG_RESULT([no])
fi
dnl ==================================
dnl Check for C++11 "override" support
dnl ==================================
if test "$HAVE_CXX11" = "TRUE"; then
AC_MSG_CHECKING([whether $CXX supports C++11 "override" syntax])
save_CXXFLAGS=$CXXFLAGS
CXXFLAGS="$CXXFLAGS $CXXFLAGS_CXX11"
AC_LANG_PUSH([C++])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
AC_MSG_CHECKING([whether $CXX supports C++11 "override" syntax])
save_CXXFLAGS=$CXXFLAGS
CXXFLAGS="$CXXFLAGS $CXXFLAGS_CXX11"
AC_LANG_PUSH([C++])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
struct A
{
virtual void test();
...
...
@@ -6326,26 +6304,24 @@ struct B : A
};
]])],[HAVE_CXX11_OVERRIDE=TRUE],[])
AC_LANG_POP([C++])
CXXFLAGS=$save_CXXFLAGS
if test "$HAVE_CXX11_OVERRIDE" = "TRUE"; then
AC_MSG_RESULT([yes])
AC_DEFINE([HAVE_CXX11_OVERRIDE])
else
AC_MSG_RESULT([no])
fi
AC_LANG_POP([C++])
CXXFLAGS=$save_CXXFLAGS
if test "$HAVE_CXX11_OVERRIDE" = "TRUE"; then
AC_MSG_RESULT([yes])
AC_DEFINE([HAVE_CXX11_OVERRIDE])
else
AC_MSG_RESULT([no])
fi
dnl ==================================
dnl Check for C++11 "final" support
dnl ==================================
if test "$HAVE_CXX11" = "TRUE"; then
AC_MSG_CHECKING([whether $CXX supports C++11 "final" syntax])
save_CXXFLAGS=$CXXFLAGS
CXXFLAGS="$CXXFLAGS $CXXFLAGS_CXX11"
AC_LANG_PUSH([C++])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
AC_MSG_CHECKING([whether $CXX supports C++11 "final" syntax])
save_CXXFLAGS=$CXXFLAGS
CXXFLAGS="$CXXFLAGS $CXXFLAGS_CXX11"
AC_LANG_PUSH([C++])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
// First check that this correct program that uses "final" compiles
struct A final
{
...
...
@@ -6362,7 +6338,7 @@ struct C : B
};
]])],[have_final=yes],[])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
// Then check that the "final" works as expected,
// that this program fails to compile
struct A final
...
...
@@ -6374,7 +6350,7 @@ struct B : A
};
]])],[],[final_class_works=yes])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
// Also this should fail to compile
struct B
{
...
...
@@ -6391,40 +6367,37 @@ struct D : C
void test();
};
]])],[],[final_method_works=yes])
AC_LANG_POP([C++])
AC_LANG_POP([C++])
CXXFLAGS=$save_CXXFLAGS
CXXFLAGS=$save_CXXFLAGS
if test "$have_final" = yes -a "$final_class_works" = yes -a "$final_method_works" = yes; then
AC_MSG_RESULT([yes])
AC_DEFINE([HAVE_CXX11_FINAL])
else
AC_MSG_RESULT([no])
fi
if test "$have_final" = yes -a "$final_class_works" = yes -a "$final_method_works" = yes; then
AC_MSG_RESULT([yes])
AC_DEFINE([HAVE_CXX11_FINAL])
else
AC_MSG_RESULT([no])
fi
dnl ===================================================================
dnl Check for C++11 perfect forwarding support
dnl ===================================================================
if test "$HAVE_CXX11" = "TRUE"; then
AC_MSG_CHECKING([whether $CXX supports C++11 perfect forwarding])
save_CXXFLAGS=$CXXFLAGS
CXXFLAGS="$CXXFLAGS $CXXFLAGS_CXX11"
AC_LANG_PUSH([C++])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <utility>
template<typename T, typename... Args> T * f(Args &&... v) {
return new T(std::forward<Args>(v)...);
}
]], [[
f<int>(0);
]])], [perfect_forwarding=yes], [perfect_forwarding=no])
AC_LANG_POP([C++])
CXXFLAGS=$save_CXXFLAGS
AC_MSG_RESULT([$perfect_forwarding])
if test "$perfect_forwarding" = yes; then
AC_DEFINE([HAVE_CXX11_PERFECT_FORWARDING])
fi
AC_MSG_CHECKING([whether $CXX supports C++11 perfect forwarding])
save_CXXFLAGS=$CXXFLAGS
CXXFLAGS="$CXXFLAGS $CXXFLAGS_CXX11"
AC_LANG_PUSH([C++])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <utility>
template<typename T, typename... Args> T * f(Args &&... v) {
return new T(std::forward<Args>(v)...);
}
]], [[
f<int>(0);
]])], [perfect_forwarding=yes], [perfect_forwarding=no])
AC_LANG_POP([C++])
CXXFLAGS=$save_CXXFLAGS
AC_MSG_RESULT([$perfect_forwarding])
if test "$perfect_forwarding" = yes; then
AC_DEFINE([HAVE_CXX11_PERFECT_FORWARDING])
fi
HAVE_GCC_PRAGMA_OPERATOR=
...
...
helpcompiler/inc/HelpCompiler.hxx
Dosyayı görüntüle @
fcf01583
...
...
@@ -20,12 +20,9 @@
#ifndef INCLUDED_HELPCOMPILER_INC_HELPCOMPILER_HXX
#define INCLUDED_HELPCOMPILER_INC_HELPCOMPILER_HXX
#include <
config_global
.h>
#include <
sal/config
.h>
#include <string>
#if !HAVE_CXX11
#define BOOST_NO_0X_HDR_TYPEINDEX
#endif
#include <boost/unordered_map.hpp>
#include <vector>
#include <list>
...
...
include/osl/diagnose.hxx
Dosyayı görüntüle @
fcf01583
...
...
@@ -26,11 +26,6 @@
#include <functional>
#include <typeinfo>
#include <config_global.h>
#if !HAVE_CXX11
#define BOOST_NO_0X_HDR_TYPEINDEX
#endif
#include <boost/unordered_set.hpp>
#include <osl/diagnose.h>
#include <osl/interlck.h>
...
...
solenv/gbuild/platform/macosx.mk
Dosyayı görüntüle @
fcf01583
...
...
@@ -56,7 +56,7 @@ gb_CXXFLAGS := \
-Wno-non-virtual-dtor \
-fno-strict-aliasing \
-fsigned-char \
$(
if $(filter TRUE,$(HAVE_CXX11)),$(CXXFLAGS_CXX11)
)
$(
CXXFLAGS_CXX11
)
#-Wshadow \ break in compiler headers already
#-fsigned-char \ might be removed?
...
...
solenv/gbuild/platform/mingw.mk
Dosyayı görüntüle @
fcf01583
...
...
@@ -47,17 +47,13 @@ gb_CXXFLAGS := \
-Wshadow \
-Wuninitialized \
-fno-strict-aliasing \
-std=gnu++0x \
ifneq ($(SYSBASE),)
gb_CXXFLAGS += --sysroot=$(SYSBASE)
gb_CFLAGS += --sysroot=$(SYSBASE)
endif
ifeq ($(HAVE_CXX11),TRUE)
gb_CXXFLAGS += -std=gnu++0x
endif
# At least sal defines its own __main, which would cause DLLs linking against
# sal to pick up sal's __main instead of the one from MinGW's dllcrt2.o:
gb_LinkTarget_LDFLAGS := \
...
...
solenv/gbuild/platform/solaris.mk
Dosyayı görüntüle @
fcf01583
...
...
@@ -62,6 +62,7 @@ gb_CXXFLAGS := \
-Wshadow \
-Woverloaded-virtual \
-Wno-non-virtual-dtor \
-std=c++0x \
# enable debug STL
ifeq ($(gb_ENABLE_DBGUTIL),$(true))
...
...
@@ -83,22 +84,16 @@ gb_CXXFLAGS += -fno-strict-aliasing
endif
endif
ifeq ($(HAVE_CXX11),TRUE)
#Currently, as well as for its own merits, c++11/c++0x mode allows use to use
#a template for SAL_N_ELEMENTS to detect at compiler time its misuse
gb_CXXFLAGS += -std=c++0x
#We have so many std::auto_ptr uses that we need to be able to disable
#warnings for those so that -Werror continues to be useful, seeing as moving
#to unique_ptr isn't an option when we must support different compilers
#
#When we are using 4.6.0 we can use gcc pragmas to selectively silence auto_ptr
#warnings in isolation, but for <= 4.5.X we need to globally disable
#deprecation
ifeq ($(HAVE_GCC_PRAGMA_OPERATOR),)
gb_CXXFLAGS += -Wno-deprecated-declarations
endif
endif
ifneq ($(strip $(SYSBASE)),)
gb_CXXFLAGS += --sysroot=$(SYSBASE)
...
...
solenv/gbuild/platform/unxgcc.mk
Dosyayı görüntüle @
fcf01583
...
...
@@ -43,6 +43,7 @@ gb_CXXFLAGS := \
-fPIC \
-Wshadow \
-Woverloaded-virtual \
$(CXXFLAGS_CXX11) \
ifeq ($(COM_GCC_IS_CLANG),)
gb_GccLess460 := $(shell expr $(GCC_VERSION) \< 406)
...
...
@@ -79,22 +80,16 @@ gb_COMPILERDEFS += \
endif
ifeq ($(HAVE_CXX11),TRUE)
#Currently, as well as for its own merits, c++11/c++0x mode allows use to use
#a template for SAL_N_ELEMENTS to detect at compiler time its misuse
gb_CXXFLAGS += $(CXXFLAGS_CXX11)
#We have so many std::auto_ptr uses that we need to be able to disable
#warnings for those so that -Werror continues to be useful, seeing as moving
#to unique_ptr isn't an option when we must support different compilers
#
#When we are using 4.6.0 we can use gcc pragmas to selectively silence auto_ptr
#warnings in isolation, but for <= 4.5.X we need to globally disable
#deprecation
ifeq ($(HAVE_GCC_PRAGMA_OPERATOR),)
gb_CXXFLAGS += -Wno-deprecated-declarations
endif
endif
ifneq ($(strip $(SYSBASE)),)
gb_CXXFLAGS += --sysroot=$(SYSBASE)
...
...
xmlhelp/source/cxxhelp/provider/databases.hxx
Dosyayı görüntüle @
fcf01583
...
...
@@ -20,13 +20,10 @@
#ifndef INCLUDED_XMLHELP_SOURCE_CXXHELP_PROVIDER_DATABASES_HXX
#define INCLUDED_XMLHELP_SOURCE_CXXHELP_PROVIDER_DATABASES_HXX
#include <
config_global
.h>
#include <
sal/config
.h>
#include <set>
#include <vector>
#if !HAVE_CXX11
#define BOOST_NO_0X_HDR_TYPEINDEX
#endif
#include <boost/unordered_map.hpp>
#include <boost/unordered_set.hpp>
#include <osl/mutex.hxx>
...
...
xmlhelp/source/cxxhelp/provider/db.hxx
Dosyayı görüntüle @
fcf01583
...
...
@@ -21,10 +21,6 @@
#include <com/sun/star/ucb/XSimpleFileAccess3.hpp>
#include <config_global.h>
#if !HAVE_CXX11
#define BOOST_NO_0X_HDR_TYPEINDEX
#endif
#include <boost/unordered_map.hpp>
#include <rtl/string.hxx>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment