ObjFW  Changes On Branch ff29e35344764aa2

Changes In Branch 1.2 Through [ff29e35344] Excluding Merge-Ins

This is equivalent to a diff from c5f91347e7 to ff29e35344

2024-11-09
00:42
Make ObjC++ exceptions work on Windows with DWARF check-in: 105d2f60b7 user: js tags: 1.2
2024-11-08
22:43
OFColor: Improve style of deprecation message check-in: ff29e35344 user: js tags: 1.2
22:43
OFColor: Improve style of deprecation message check-in: 5204353c50 user: js tags: trunk
20:57
Make ObjC++ exceptions work with libc++ on Windows check-in: 6bb25d33ac user: js tags: 1.2
2024-11-07
21:17
Add support for MPTCP check-in: 49f5cd5ec5 user: js tags: trunk
21:07
Merge trunk into 1.2 branch check-in: 10cce4f6ef user: js tags: 1.2
2024-11-06
21:28
objfw-compile: Remove handling of .bundle check-in: c5f91347e7 user: js tags: trunk
2024-11-05
23:48
GitHub Actions: Add ObjC++ test on 32 bit Ubuntu check-in: 77b155c1da user: js tags: trunk

Modified configure.ac from [b60b759470] to [14f2e39cfd].

1

2
3
4
5
6
7

8
9
10
11
12
13
14
15

1
2
3
4
5
6

7

8
9
10
11
12
13
14
-
+





-
+
-







AC_INIT(ObjFW, 1.3-dev, js@nil.im, objfw, https://objfw.nil.im/)
AC_INIT(ObjFW, 1.2, js@nil.im, objfw, https://objfw.nil.im/)
AC_CONFIG_SRCDIR(src)
AC_CONFIG_AUX_DIR(build-aux)
AC_CONFIG_MACRO_DIR(build-aux/m4)

AC_DEFINE(OBJFW_VERSION_MAJOR, 1, [The major version of ObjFW])
AC_DEFINE(OBJFW_VERSION_MINOR, 3, [The minor version of ObjFW])
AC_DEFINE(OBJFW_VERSION_MINOR, 2, [The minor version of ObjFW])
dnl This may only be set to 1.3 once 1.3 is released
AC_SUBST(BUNDLE_VERSION, 1.2.0)
AC_SUBST(BUNDLE_SHORT_VERSION, 1.2)

for i in configure.ac build-aux/m4/*; do
	AS_IF([test $i -nt configure], [
		AC_MSG_ERROR([$i is newer than configure! Run ./autogen.sh!])
	])
2117
2118
2119
2120
2121
2122
2123
2124

2125
2126
2127
2128
2129
2130
2131
2116
2117
2118
2119
2120
2121
2122

2123
2124
2125
2126
2127
2128
2129
2130







-
+







])

AS_IF([test x"$GOBJC" = x"yes"], [
	OBJCFLAGS="$OBJCFLAGS -Wwrite-strings -Wpointer-arith"

	AC_ARG_ENABLE(werror,
		AS_HELP_STRING([--disable-werror], [do not build with -Werror]))
	AS_IF([test x"$enable_werror" != x"no"], [
	AS_IF([test x"$enable_werror" = x"yes"], [
		OBJCFLAGS="$OBJCFLAGS -Werror"
	])

	old_OBJCFLAGS="$OBJCFLAGS"
	OBJCFLAGS="$OBJCFLAGS -Werror"
	AC_MSG_CHECKING(whether we need -Wno-strict-aliasing due to GCC bugs)
	AC_COMPILE_IFELSE([

Modified src/OFColor.h from [aeb31a556f] to [f08834ff4d].

28
29
30
31
32
33
34
35

36
37
38
39
40
41
42
28
29
30
31
32
33
34

35
36
37
38
39
40
41
42







-
+







 */
@interface OFColor: OFObject
#ifdef OF_HAVE_CLASS_PROPERTIES
@property (class, readonly, nonatomic) OFColor *black;
@property (class, readonly, nonatomic) OFColor *silver;
@property (class, readonly, nonatomic) OFColor *gray;
@property (class, readonly, nonatomic) OFColor *grey
    OF_DEPRECATED(ObjFW, 1, 1, "Use gray instead");
    OF_DEPRECATED(ObjFW, 1, 1, "Use +[gray] instead");
@property (class, readonly, nonatomic) OFColor *white;
@property (class, readonly, nonatomic) OFColor *maroon;
@property (class, readonly, nonatomic) OFColor *red;
@property (class, readonly, nonatomic) OFColor *purple;
@property (class, readonly, nonatomic) OFColor *fuchsia;
@property (class, readonly, nonatomic) OFColor *green;
@property (class, readonly, nonatomic) OFColor *lime;
95
96
97
98
99
100
101
102

103
104
105
106
107
108
109
95
96
97
98
99
100
101

102
103
104
105
106
107
108
109







-
+







 *
 * @deprecated Use @ref gray instead.
 *
 * The RGBA value is (0.5, 0.5, 0.5, 1).
 *
 * @return The HTML color `gray`
 */
+ (OFColor *)grey OF_DEPRECATED(ObjFW, 1, 1, "Use gray instead");
+ (OFColor *)grey OF_DEPRECATED(ObjFW, 1, 1, "Use +[gray] instead");

/**
 * @brief Returns the HTML color `white`.
 *
 * The RGBA value is (1, 1, 1, 1).
 *
 * @return The HTML color `white`

Modified src/runtime/exception.m from [7f6288ce90] to [b7aba5c4db].

788
789
790
791
792
793
794
795
796
797



798
799
800

801
802




803

804
805


806
807
808
809
810
811
812
788
789
790
791
792
793
794



795
796
797
798
799
800
801


802
803
804
805
806
807


808
809
810
811
812
813
814
815
816







-
-
-
+
+
+



+
-
-
+
+
+
+

+
-
-
+
+







typedef EXCEPTION_DISPOSITION (*seh_personality_fn)(PEXCEPTION_RECORD, void *,
    PCONTEXT, PDISPATCHER_CONTEXT);
static seh_personality_fn __gxx_personality_seh0;

OF_CONSTRUCTOR()
{
	/*
	 * This only works if the application uses libstdc++-6.dll.
	 * There is unfortunately no other way, as Windows does not support
	 * proper weak linking.
	 * This only works if the application uses libc++.dll or
	 * libstdc++-6.dll. There is unfortunately no other way, as Windows
	 * does not support proper weak linking.
	 */

	HMODULE module;

	if ((module = GetModuleHandle("libstdc++-6")) == NULL)
		return;
	module = GetModuleHandle("libc++");

	if (module == NULL)
		module = GetModuleHandle("libstdc++-6");

	if (module != NULL)
	__gxx_personality_seh0 = (seh_personality_fn)
	    GetProcAddress(module, "__gxx_personality_seh0");
		__gxx_personality_seh0 = (seh_personality_fn)
		    GetProcAddress(module, "__gxx_personality_seh0");
}

EXCEPTION_DISPOSITION
__gnu_objc_personality_seh0(PEXCEPTION_RECORD ms_exc, void *this_frame,
    PCONTEXT ms_orig_context, PDISPATCHER_CONTEXT ms_disp)
{
	struct _Unwind_Exception *ex =