Modified ChangeLog
from [b679aebf5c]
to [2a9da6a92f].
1
2
3
4
5
6
7
8
9
10
11
12
13
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
+
+
+
+
+
+
+
+
+
+
|
Legend:
* Changes of existing features or bugfixes
+ New features
This file only contains the most significant changes.
ObjFW 1.0 -> ObjFW 1.0.1, 2023-09-10
* Hanging connections with OFTLSStream have been fixed when using OpenSSL
* The same fix as for OpenSSL has been applied to GnuTLS and SecureTransport
out of caution, even though there have been no hangs in practice
* The build system has been updated to fix building .frameworks among other
minor changes
* Some headers have been changed to fix compatibility with ObjC++
* Warnings about empty .o files on x86_64 Darwin have been fixed
* The OFDate documentation has been improved to list supported formats
ObjFW 0.90.2 -> ObjFW 1.0, 2023-08-29
+ First stable release with stable API and ABI
* Too many changes to list, as it has been almost 6 years since the last
release. See commits in the repository for details.
ObjFW 0.90.1 -> ObjFW 0.90.2, 2017-10-23
* Fix shadowed variables which caused many bugs (e.g. using the wrong object)
|
︙ | | |
Modified Makefile
from [7ac30af11e]
to [a04c0a2490].
︙ | | |
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
-
+
|
doxygen >/dev/null
release: docs
echo "Generating tarball for version ${PACKAGE_VERSION}..."
rm -fr objfw-${PACKAGE_VERSION} objfw-${PACKAGE_VERSION}.tar \
objfw-${PACKAGE_VERSION}.tar.gz
fossil tarball --name objfw-${PACKAGE_VERSION} current - \
--exclude '.fossil*,.git*,objfw.spec' | ofarc -ttgz -xq -
--exclude '.fossil*,.git*' | ofarc -ttgz -xq -
cp configure config.h.in objfw-${PACKAGE_VERSION}/
ofarc -cq objfw-${PACKAGE_VERSION}.tar objfw-${PACKAGE_VERSION}
rm -fr objfw-${PACKAGE_VERSION}
gzip -9 objfw-${PACKAGE_VERSION}.tar
rm -f objfw-${PACKAGE_VERSION}.tar
gpg -b objfw-${PACKAGE_VERSION}.tar.gz || true
rm -fr objfw-docs-${PACKAGE_VERSION} objfw-docs-${PACKAGE_VERSION}.tar \
|
︙ | | |
Modified build-aux/m4/buildsys.m4
from [4066b24b6a]
to [f8e7a9665b].
︙ | | |
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
+
+
+
+
|
AC_DEFUN([BUILDSYS_INIT], [
AC_REQUIRE([AC_CANONICAL_BUILD])
AC_REQUIRE([AC_CANONICAL_HOST])
AC_ARG_ENABLE(rpath,
AS_HELP_STRING([--disable-rpath], [do not use rpath]))
AC_ARG_ENABLE(silent-rules,
AS_HELP_STRING([--disable-silent-rules],
[print executed commands during build]))
case "$build_os" in
darwin*)
case "$host_os" in
darwin*)
AC_SUBST(BUILD_AND_HOST_ARE_DARWIN, yes)
;;
esac
|
︙ | | |
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
|
+
+
+
+
+
|
"$($TPUT AF 3 2>/dev/null)")
AC_SUBST(TERM_SETAF4,
"$($TPUT AF 4 2>/dev/null)")
AC_SUBST(TERM_SETAF6,
"$($TPUT AF 6 2>/dev/null)")
fi
])
AS_IF([test x"$enable_silent_rules" != x"no"], [
AC_SUBST(SILENT, '.SILENT:')
AC_SUBST(MAKEFLAGS_SILENT, '-s')
])
])
])
AC_DEFUN([BUILDSYS_CHECK_IOS], [
case "$host_os" in
darwin*)
AC_MSG_CHECKING(whether host is iOS)
|
︙ | | |
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
|
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
|
-
-
+
+
|
*-*-android*)
AC_MSG_RESULT(Android)
LIB_CFLAGS='-fPIC -DPIC'
LIB_LDFLAGS='-shared -Wl,-soname=$$out.${LIB_MAJOR}'
LIB_LDFLAGS_INSTALL_NAME=''
LIB_PREFIX='lib'
LIB_SUFFIX='.so'
INSTALL_LIB='&& ${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}.0 && ${LN_S} -f $$i.${LIB_MAJOR}.${LIB_MINOR}.0 ${DESTDIR}${libdir}/$$i.${LIB_MAJOR} && ${LN_S} -f $$i.${LIB_MAJOR}.${LIB_MINOR}.0 ${DESTDIR}${libdir}/$$i'
UNINSTALL_LIB='&& rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR} ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}.0'
INSTALL_LIB='&& ${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}.${LIB_PATCH} && ${LN_S} -f $$i.${LIB_MAJOR}.${LIB_MINOR}.${LIB_PATCH} ${DESTDIR}${libdir}/$$i.${LIB_MAJOR} && ${LN_S} -f $$i.${LIB_MAJOR}.${LIB_MINOR}.${LIB_PATCH} ${DESTDIR}${libdir}/$$i'
UNINSTALL_LIB='&& rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR} ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}.${LIB_PATCH}'
CLEAN_LIB=''
;;
hppa*-*-hpux*)
AC_MSG_RESULT([HP-UX (PA-RISC)])
LIB_CFLAGS='-fPIC -DPIC'
LIB_LDFLAGS='-shared -Wl,+h,$$out'
LIB_LDFLAGS_INSTALL_NAME=''
|
︙ | | |
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
|
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
|
-
-
+
+
|
LIB_LDFLAGS='-shared -Wl,-soname=$$out.${LIB_MAJOR}'
LIB_LDFLAGS_INSTALL_NAME=''
LIB_PREFIX='lib'
LIB_SUFFIX='.so'
AS_IF([test x"$enable_rpath" != x"no"], [
LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
])
INSTALL_LIB='&& ${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}.0 && ${LN_S} -f $$i.${LIB_MAJOR}.${LIB_MINOR}.0 ${DESTDIR}${libdir}/$$i.${LIB_MAJOR} && ${LN_S} -f $$i.${LIB_MAJOR}.${LIB_MINOR}.0 ${DESTDIR}${libdir}/$$i'
UNINSTALL_LIB='&& rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR} ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}.0'
INSTALL_LIB='&& ${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}.${LIB_PATCH} && ${LN_S} -f $$i.${LIB_MAJOR}.${LIB_MINOR}.${LIB_PATCH} ${DESTDIR}${libdir}/$$i.${LIB_MAJOR} && ${LN_S} -f $$i.${LIB_MAJOR}.${LIB_MINOR}.${LIB_PATCH} ${DESTDIR}${libdir}/$$i'
UNINSTALL_LIB='&& rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR} ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}.${LIB_PATCH}'
CLEAN_LIB=''
;;
esac
AC_SUBST(LIB_CFLAGS)
AC_SUBST(LIB_LDFLAGS)
AC_SUBST(LIB_LDFLAGS_INSTALL_NAME)
|
︙ | | |
Modified buildsys.mk.in
from [7dc02b13d9]
to [b85dfc105f].
︙ | | |
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
|
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
|
-
+
-
-
-
-
-
-
+
+
+
+
+
+
-
+
|
DEPS = ${OBJS:.o=.dep} \
${LIB_OBJS:.o=.dep} \
${AMIGA_LIB_OBJS:.o=.dep} \
${PLUGIN_OBJS:.o=.dep}
MO_FILES = ${LOCALES:.po=.mo}
.SILENT:
@SILENT@
.SUFFIXES:
.SUFFIXES: .amigalib.o .beam .c .cc .class .cxx .d .erl .lib.o .java .mo .m .mm .o .plugin.o .po .py .pyc .rc .S .xpm
.PHONY: all subdirs subdirs-after pre-depend depend install install-extra uninstall uninstall-extra clean distclean locales copy-headers-into-framework ${SUBDIRS} ${SUBDIRS_AFTER}
all:
${MAKE} -s pre-all
${MAKE} -s subdirs
${MAKE} -s depend
${MAKE} -s ${STATIC_LIB} ${STATIC_LIB_NOINST} ${STATIC_PIC_LIB} ${STATIC_PIC_LIB_NOINST} ${STATIC_AMIGA_LIB} ${STATIC_AMIGA_LIB_NOINST} ${SHARED_LIB} ${SHARED_LIB_NOINST} ${FRAMEWORK} ${FRAMEWORK_NOINST} ${AMIGA_LIB} ${AMIGA_LIB_NOINST} ${PLUGIN} ${PLUGIN_NOINST} ${PROG} ${PROG_NOINST} ${JARFILE} locales
${MAKE} -s subdirs-after
${MAKE} -s post-all
${MAKE} @MAKEFLAGS_SILENT@ pre-all
${MAKE} @MAKEFLAGS_SILENT@ subdirs
${MAKE} @MAKEFLAGS_SILENT@ depend
${MAKE} @MAKEFLAGS_SILENT@ ${STATIC_LIB} ${STATIC_LIB_NOINST} ${STATIC_PIC_LIB} ${STATIC_PIC_LIB_NOINST} ${STATIC_AMIGA_LIB} ${STATIC_AMIGA_LIB_NOINST} ${SHARED_LIB} ${SHARED_LIB_NOINST} ${FRAMEWORK} ${FRAMEWORK_NOINST} ${AMIGA_LIB} ${AMIGA_LIB_NOINST} ${PLUGIN} ${PLUGIN_NOINST} ${PROG} ${PROG_NOINST} ${JARFILE} locales
${MAKE} @MAKEFLAGS_SILENT@ subdirs-after
${MAKE} @MAKEFLAGS_SILENT@ post-all
pre-all post-all:
subdirs: ${SUBDIRS}
subdirs-after: ${SUBDIRS_AFTER}
${SUBDIRS} ${SUBDIRS_AFTER}:
for i in $@; do \
${DIR_ENTER}; \
${MAKE} -s || exit $$?; \
${MAKE} @MAKEFLAGS_SILENT@ || exit $$?; \
${DIR_LEAVE}; \
done
depend: pre-depend
: >.deps
for i in "" ${DEPS}; do \
test x"$$i" = x"" && continue; \
|
︙ | | |
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
|
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
|
-
+
-
+
|
else \
${LINK_FAILED}; \
fi
${FRAMEWORK} ${FRAMEWORK_NOINST}: ${EXT_DEPS} ${LIB_OBJS} ${LIB_OBJS_EXTRA}
${LINK_STATUS}
out="$@"; \
if rm -fr $$out && ${MKDIR_P} $$out && ${MAKE} -s COPY_HEADERS_IF_SUBDIR=${includesubdir} COPY_HEADERS_DESTINATION=$$PWD/$@/Headers copy-headers-into-framework && if test -f Info.plist; then ${INSTALL} -m 644 Info.plist $$out/Info.plist; fi && if test -f module.modulemap; then ${MKDIR_P} $$out/Modules && ${INSTALL} -m 644 module.modulemap $$out/Modules/module.modulemap; fi && ${LD} -o $$out/$${out%.framework} ${LIB_OBJS} ${LIB_OBJS_EXTRA} ${FRAMEWORK_LDFLAGS} ${FRAMEWORK_LDFLAGS_INSTALL_NAME} ${LDFLAGS} ${FRAMEWORK_LIBS} && ${CODESIGN} -fs ${CODESIGN_IDENTITY} $$out; then \
if rm -fr $$out && ${MKDIR_P} $$out/Versions/${LIB_MAJOR} && ${LN_S} ${LIB_MAJOR} $@/Versions/Current && ${MAKE} @MAKEFLAGS_SILENT@ COPY_HEADERS_IF_SUBDIR=${includesubdir} COPY_HEADERS_DESTINATION=$$PWD/$@/Versions/${LIB_MAJOR}/Headers copy-headers-into-framework && ${LN_S} Versions/Current/Headers $@/Headers && if test -f Info.plist; then ${INSTALL} -m 644 Info.plist $$out/Info.plist; fi && if test -f module.modulemap; then ${MKDIR_P} $$out/Versions/${LIB_MAJOR}/Modules && ${INSTALL} -m 644 module.modulemap $$out/Versions/${LIB_MAJOR}/Modules/module.modulemap && ${LN_S} Versions/Current/Modules $@/Modules; fi && ${LD} -o $$out/Versions/${LIB_MAJOR}/$${out%.framework} ${LIB_OBJS} ${LIB_OBJS_EXTRA} ${FRAMEWORK_LDFLAGS} ${FRAMEWORK_LDFLAGS_INSTALL_NAME} ${LDFLAGS} ${FRAMEWORK_LIBS} && ${CODESIGN} -fs ${CODESIGN_IDENTITY} $$out/Versions/${LIB_MAJOR}/$${out%.framework} && ${LN_S} Versions/Current/$${out%.framework} $@/$${out%.framework}; then \
${LINK_OK}; \
else \
rm -fr $$out; false; \
${LINK_FAILED}; \
fi
copy-headers-into-framework:
for i in "" ${SUBDIRS} ${SUBDIRS_AFTER}; do \
test x"$$i" = x"" && continue; \
cd $$i || exit 1; \
${MAKE} -s copy-headers-into-framework || exit $$?; \
${MAKE} @MAKEFLAGS_SILENT@ copy-headers-into-framework || exit $$?; \
cd .. || exit 1; \
done
if test x"${includesubdir}" = x"${COPY_HEADERS_IF_SUBDIR}"; then \
for i in "" ${INCLUDES}; do \
test x"$$i" = x"" && continue; \
${MKDIR_P} $$(dirname ${COPY_HEADERS_DESTINATION}/$$i) || exit $$?; \
|
︙ | | |
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
|
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
|
-
+
|
${COMPILE_PLUGIN_FAILED}; \
fi
install: all install-extra
for i in "" ${SUBDIRS} ${SUBDIRS_AFTER}; do \
test x"$$i" = x"" && continue; \
${DIR_ENTER}; \
${MAKE} -s install || exit $$?; \
${MAKE} @MAKEFLAGS_SILENT@ install || exit $$?; \
${DIR_LEAVE}; \
done
for i in "" ${SHARED_LIB}; do \
test x"$$i" = x"" && continue; \
${INSTALL_STATUS}; \
if ${MKDIR_P} ${DESTDIR}${libdir} @INSTALL_LIB@; then \
|
︙ | | |
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
|
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
|
-
+
|
install-extra:
uninstall:
for i in "" ${SUBDIRS} ${SUBDIRS_AFTER}; do \
test x"$$i" = x"" && continue; \
${DIR_ENTER}; \
${MAKE} -s uninstall || exit $$?; \
${MAKE} @MAKEFLAGS_SILENT@ uninstall || exit $$?; \
${DIR_LEAVE}; \
done
for i in "" ${SHARED_LIB}; do \
test x"$$i" = x"" && continue; \
if test -f ${DESTDIR}${libdir}/$$i -o -f ${DESTDIR}${bindir}/$$i; then \
if : @UNINSTALL_LIB@; then \
|
︙ | | |
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
|
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
|
-
+
-
+
-
+
-
+
|
${DELETE_OK}; \
else \
${DELETE_FAILED}; \
fi \
fi \
done
${MAKE} -s uninstall-extra
${MAKE} @MAKEFLAGS_SILENT@ uninstall-extra
uninstall-extra:
clean:
for i in "" ${SUBDIRS} ${SUBDIRS_AFTER}; do \
test x"$$i" = x"" && continue; \
${DIR_ENTER}; \
${MAKE} -s clean || exit $$?; \
${MAKE} @MAKEFLAGS_SILENT@ clean || exit $$?; \
${DIR_LEAVE}; \
done
: >.deps
for i in "" ${DEPS} ${OBJS} ${OBJS_EXTRA} ${LIB_OBJS} ${LIB_OBJS_EXTRA} ${AMIGA_LIB_OBJS} ${AMIGA_LIB_OBJS_START} ${AMIGA_LIB_OBJS_EXTRA} ${PLUGIN_OBJS} ${PROG} ${PROG_NOINST} ${SHARED_LIB} ${SHARED_LIB_NOINST} ${AMIGA_LIB} ${AMIGA_LIB_NOINST} ${STATIC_LIB} ${STATIC_LIB_NOINST} ${STATIC_PIC_LIB} ${STATIC_PIC_LIB_NOINST} ${STATIC_AMIGA_LIB} ${STATIC_AMIGA_LIB_NOINST} ${FRAMEWORK} ${PLUGIN} ${PLUGIN_NOINST} ${CLEAN_LIB} ${MO_FILES} ${CLEAN}; do \
test x"$$i" = x"" && continue; \
if test -f $$i -o -d $$i; then \
if rm -fr $$i; then \
${DELETE_OK}; \
else \
${DELETE_FAILED}; \
fi \
fi \
done
distclean: clean
for i in "" ${SUBDIRS} ${SUBDIRS_AFTER}; do \
test x"$$i" = x"" && continue; \
${DIR_ENTER}; \
${MAKE} -s distclean || exit $$?; \
${MAKE} @MAKEFLAGS_SILENT@ distclean || exit $$?; \
${DIR_LEAVE}; \
done
for i in "" ${DISTCLEAN} .deps *~; do \
test x"$$i" = x"" && continue; \
if test -f $$i -o -d $$i; then \
if rm -fr $$i; then \
${DELETE_OK}; \
else \
${DELETE_FAILED}; \
fi \
fi \
done
print-hierarchy:
for i in "" ${SUBDIRS} ${SUBDIRS_AFTER}; do \
test x"$$i" = x"" && continue; \
echo ${PRINT_HIERARCHY_PREFIX}$$i; \
cd $$i || exit $$?; \
${MAKE} -s PRINT_HIERARCHY_PREFIX=$$i/ print-hierarchy || exit $$?; \
${MAKE} @MAKEFLAGS_SILENT@ PRINT_HIERARCHY_PREFIX=$$i/ print-hierarchy || exit $$?; \
cd .. || exit $$?; \
done
print-var:
printf '%s\n' '${${VAR}}'
DIR_ENTER = printf "@TERM_EL@@TERM_SETAF6@Entering directory @TERM_BOLD@%s@TERM_SGR0@@TERM_SETAF6@.@TERM_SGR0@\n" "$$i"; cd $$i || exit $$?
|
︙ | | |
Modified configure.ac
from [bef8f81789]
to [73909d52fa].
︙ | | |
495
496
497
498
499
500
501
502
503
504
505
506
507
508
|
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
|
+
|
])
])
AC_MSG_RESULT($objc_runtime)
case "$objc_runtime" in
"ObjFW runtime")
AC_DEFINE(OF_OBJFW_RUNTIME, 1, [Whether we use the ObjFW runtime])
AC_SUBST(USE_SRCS_TAGGED_POINTERS, '${SRCS_TAGGED_POINTERS}')
AC_MSG_CHECKING([whether -fobjc-runtime=objfw is supported])
old_OBJCFLAGS="$OBJCFLAGS"
OBJCFLAGS="$OBJCFLAGS -Xclang -fobjc-runtime=objfw"
AC_LINK_IFELSE([
AC_LANG_PROGRAM([
|
︙ | | |
Modified extra.mk.in
from [6b333de554]
to [d81c4eae26].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
+
+
+
+
+
+
+
+
|
OBJFW_SHARED_LIB = @OBJFW_SHARED_LIB@
OBJFW_STATIC_LIB = @OBJFW_STATIC_LIB@
OBJFW_FRAMEWORK = @OBJFW_FRAMEWORK@
OBJFW_LIB_MAJOR = 1
OBJFW_LIB_MINOR = 0
OBJFW_LIB_PATCH = 0
OBJFW_LIB_MAJOR_MINOR = ${OBJFW_LIB_MAJOR}.${OBJFW_LIB_MINOR}
OBJFWRT_SHARED_LIB = @OBJFWRT_SHARED_LIB@
OBJFWRT_STATIC_LIB = @OBJFWRT_STATIC_LIB@
OBJFWRT_FRAMEWORK = @OBJFWRT_FRAMEWORK@
OBJFWRT_LIB_MAJOR = 1
OBJFWRT_LIB_MINOR = 0
OBJFWRT_LIB_PATCH = 0
OBJFWRT_LIB_MAJOR_MINOR = ${OBJFWRT_LIB_MAJOR}.${OBJFWRT_LIB_MINOR}
OBJFWBRIDGE_SHARED_LIB = @OBJFWBRIDGE_SHARED_LIB@
OBJFWBRIDGE_STATIC_LIB = @OBJFWBRIDGE_STATIC_LIB@
OBJFWBRIDGE_FRAMEWORK = @OBJFWBRIDGE_FRAMEWORK@
OBJFWBRIDGE_LIB_MAJOR = 1
OBJFWBRIDGE_LIB_MINOR = 0
OBJFWBRIDGE_LIB_PATCH = 0
OBJFWTLS_SHARED_LIB = @OBJFWTLS_SHARED_LIB@
OBJFWTLS_STATIC_LIB = @OBJFWTLS_STATIC_LIB@
OBJFWTLS_FRAMEWORK = @OBJFWTLS_FRAMEWORK@
OBJFWTLS_LIB_MAJOR = 1
OBJFWTLS_LIB_MINOR = 0
OBJFWTLS_LIB_PATCH = 1
BIN_PREFIX = @BIN_PREFIX@
BRIDGE = @BRIDGE@
CVINCLUDE_INLINE_H = @CVINCLUDE_INLINE_H@
ENCODINGS_A = @ENCODINGS_A@
ENCODINGS_LIB_A = @ENCODINGS_LIB_A@
ENCODINGS_SRCS = @ENCODINGS_SRCS@
|
︙ | | |
76
77
78
79
80
81
82
83
84
85
86
|
84
85
86
87
88
89
90
91
92
93
94
95
|
+
|
UNICODE_M = @UNICODE_M@
USE_INCLUDES_ATOMIC = @USE_INCLUDES_ATOMIC@
USE_SRCS_APPLETALK = @USE_SRCS_APPLETALK@
USE_SRCS_FILES = @USE_SRCS_FILES@
USE_SRCS_IPX = @USE_SRCS_IPX@
USE_SRCS_PLUGINS = @USE_SRCS_PLUGINS@
USE_SRCS_SOCKETS = @USE_SRCS_SOCKETS@
USE_SRCS_TAGGED_POINTERS = @USE_SRCS_TAGGED_POINTERS@
USE_SRCS_THREADS = @USE_SRCS_THREADS@
USE_SRCS_UNIX_SOCKETS = @USE_SRCS_UNIX_SOCKETS@
USE_SRCS_WINDOWS = @USE_SRCS_WINDOWS@
WRAPPER = @WRAPPER@
|
Deleted objfw.spec version [a23f4d13a7].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
|
|
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
|
%global libobjfw_major 1
%global libobjfw_minor 0
%global libobjfwrt_major 1
%global libobjfwrt_minor 0
%global libobjfwtls_major 1
%global libobjfwtls_minor 0
%if 0%{?suse_version}
%global libobjfw_pkgname libobjfw%{libobjfw_major}
%global libobjfwrt_pkgname libobjfwrt%{libobjfwrt_major}
%global libobjfwtls_pkgname libobjfwtls%{libobjfwtls_major}
%else
%global libobjfw_pkgname libobjfw
%global libobjfwrt_pkgname libobjfwrt
%global libobjfwtls_pkgname libobjfwtls
%endif
Name: objfw
Version: 1.0
Release: 1%{?dist}
Summary: Portable, lightweight framework for the Objective-C language
%if 0%{?suse_version}
License: QPL-1.0 or GPL-3.0 or GPL-2.0
Group: Development/Languages/C and C++
%else
License: QPL or GPLv3 or GPLv2
%endif
URL: https://objfw.nil.im
Source0: objfw-%{version}.tar.gz
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: clang
BuildRequires: make
BuildRequires: pkgconfig(openssl)
Requires: %{libobjfw_pkgname}%{_isa} = %{version}-%{release}
Requires: %{libobjfw_pkgname}-devel = %{version}-%{release}
Requires: %{libobjfwrt_pkgname}%{_isa} = %{version}-%{release}
Requires: %{libobjfwrt_pkgname}-devel = %{version}-%{release}
Requires: ofarc%{_isa} = %{version}-%{release}
Requires: ofdns%{_isa} = %{version}-%{release}
Requires: ofhash%{_isa} = %{version}-%{release}
Requires: ofhttp%{_isa} = %{version}-%{release}
%description
ObjFW is a portable, lightweight framework for the Objective-C language. It
enables you to write an application in Objective-C that will run on any
platform supported by ObjFW without having to worry about differences between
operating systems or various frameworks you would otherwise need if you want to
be portable.
It supports all modern Objective-C features when using Clang, but is also
compatible with GCC ≥ 4.6 to allow maximum portability.
ObjFW also comes with its own lightweight and extremely fast Objective-C
runtime, which in real world use cases was found to be significantly faster
than both GNU's and Apple's runtime.
%package -n %{libobjfw_pkgname}
Summary: ObjFW library
Requires: %{libobjfwrt_pkgname}%{_isa} = %{version}-%{release}
%description -n %{libobjfw_pkgname}
The %{libobjfw_pkgname} package contains the library needed by programs using
ObjFW.
%package -n %{libobjfw_pkgname}-devel
Summary: Header files, libraries and tools for %{libobjfw_pkgname}
Requires: %{libobjfw_pkgname}%{_isa} = %{version}-%{release}
Requires: %{libobjfwrt_pkgname}-devel = %{version}-%{release}
%description -n %{libobjfw_pkgname}-devel
The %{libobjfw_pkgname}-devel package contains the header files, libraries and
tools to develop programs using ObjFW.
%package -n %{libobjfwrt_pkgname}
Summary: ObjFW Objective-C runtime library
%description -n %{libobjfwrt_pkgname}
The %{libobjfwrt_pkgname} package contains ObjFW's Objective-C runtime library.
%package -n %{libobjfwrt_pkgname}-devel
Summary: Header files and libraries for %{libobjfwrt_pkgname}
Requires: %{libobjfwrt_pkgname}%{_isa} = %{version}-%{release}
%description -n %{libobjfwrt_pkgname}-devel
The %{libobjfwrt_pkgname}-devel package contains header files and libraries for
ObjFW's Objective-C runtime library.
%package -n %{libobjfwtls_pkgname}
Summary: TLS support for ObjFW
Requires: openssl%{_isa} >= 1.1.1
%description -n %{libobjfwtls_pkgname}
The %{libobjfwtls_pkgname} package contains TLS support for ObjFW
%package -n %{libobjfwtls_pkgname}-devel
Summary: Header files and libraries for %{libobjfwtls_pkgname}
Requires: %{libobjfwtls_pkgname}%{_isa} = %{version}-%{release}
%description -n %{libobjfwtls_pkgname}-devel
The %{libobjfwtls_pkgname}-devel package contains header files and libraries
for TLS support for ObjFW.
%package -n ofarc
Summary: Utility for handling ZIP, Tar and LHA archives
Requires: %{libobjfw_pkgname}%{_isa} = %{version}-%{release}
Requires: %{libobjfwrt_pkgname}%{_isa} = %{version}-%{release}
%description -n ofarc
ofarc is a multi-format archive utility that allows creating, listing,
extracting and modifying ZIP, Tar and LHA archives using ObjFW's classes for
various archive types.
%package -n ofdns
Summary: Utility for performing DNS requests on the command line
Requires: %{libobjfw_pkgname}%{_isa} = %{version}-%{release}
Requires: %{libobjfwrt_pkgname}%{_isa} = %{version}-%{release}
%description -n ofdns
ofdns is an utility for performing DNS requests on the command line using
ObjFW's DNS resolver.
%package -n ofhash
Summary: Utility to hash files with various cryptographic hash functions
Requires: %{libobjfw_pkgname}%{_isa} = %{version}-%{release}
Requires: %{libobjfwrt_pkgname}%{_isa} = %{version}-%{release}
%description -n ofhash
ofhash is an utility to hash files with various cryptographic hash functions
(even using different algorithms at once) using ObjFW's classes for various
cryptographic hashes.
%package -n ofhttp
Summary: Command line downloader for HTTP(S)
Requires: %{libobjfw_pkgname}%{_isa} = %{version}-%{release}
Requires: %{libobjfwrt_pkgname}%{_isa} = %{version}-%{release}
Requires: %{libobjfwtls_pkgname}%{_isa} = %{version}-%{release}
%description -n ofhttp
ofhttp is a command line downloader for HTTP and HTTPS using ObjFW's
OFHTTPClient class. It supports all features one would expect from a modern
command line downloader such as resuming of downloads, using a SOCKS5 proxy, a
modern terminal-based UI, etc.
%prep
%autosetup
./autogen.sh
%build
%configure OBJC=clang --disable-rpath
%make_build
%install
%make_install
%check
make -C tests run
%if 0%{?suse_version}
%post -n %{libobjfw_pkgname} -p /sbin/ldconfig
%postun -n %{libobjfw_pkgname} -p /sbin/ldconfig
%post -n %{libobjfwrt_pkgname} -p /sbin/ldconfig
%postun -n %{libobjfwrt_pkgname} -p /sbin/ldconfig
%endif
%files
%license LICENSE.GPLv2
%license LICENSE.GPLv3
%license LICENSE.QPL
%files -n %{libobjfw_pkgname}
%license LICENSE.GPLv2
%license LICENSE.GPLv3
%license LICENSE.QPL
%{_libdir}/libobjfw.so.%{libobjfw_major}
%{_libdir}/libobjfw.so.%{libobjfw_major}.%{libobjfw_minor}.0
%files -n %{libobjfw_pkgname}-devel
%license LICENSE.GPLv2
%license LICENSE.GPLv3
%license LICENSE.QPL
%{_bindir}/objfw-compile
%{_bindir}/objfw-config
%{_bindir}/objfw-embed
%{_bindir}/objfw-new
%{_includedir}/ObjFW
%{_libdir}/libobjfw.so
%files -n %{libobjfwrt_pkgname}
%license LICENSE.GPLv2
%license LICENSE.GPLv3
%license LICENSE.QPL
%{_libdir}/libobjfwrt.so.%{libobjfwrt_major}
%{_libdir}/libobjfwrt.so.%{libobjfwrt_major}.%{libobjfwrt_minor}.0
%files -n %{libobjfwrt_pkgname}-devel
%license LICENSE.GPLv2
%license LICENSE.GPLv3
%license LICENSE.QPL
%{_includedir}/ObjFWRT
%{_libdir}/libobjfwrt.so
%files -n %{libobjfwtls_pkgname}
%license LICENSE.GPLv2
%license LICENSE.GPLv3
%license LICENSE.QPL
%{_libdir}/libobjfwtls.so.%{libobjfwtls_major}
%{_libdir}/libobjfwtls.so.%{libobjfwtls_major}.%{libobjfwtls_minor}.0
%files -n %{libobjfwtls_pkgname}-devel
%license LICENSE.GPLv2
%license LICENSE.GPLv3
%license LICENSE.QPL
%{_includedir}/ObjFWTLS
%{_libdir}/libobjfwtls.so
%files -n ofarc
%license LICENSE.GPLv2
%license LICENSE.GPLv3
%license LICENSE.QPL
%{_bindir}/ofarc
%{_datadir}/ofarc
%files -n ofdns
%license LICENSE.GPLv2
%license LICENSE.GPLv3
%license LICENSE.QPL
%{_bindir}/ofdns
%{_datadir}/ofdns
%files -n ofhash
%license LICENSE.GPLv2
%license LICENSE.GPLv3
%license LICENSE.QPL
%{_bindir}/ofhash
%{_datadir}/ofhash
%files -n ofhttp
%license LICENSE.GPLv2
%license LICENSE.GPLv3
%license LICENSE.QPL
%{_bindir}/ofhttp
%{_datadir}/ofhttp
|
Modified src/Makefile
from [3e54ffc274]
to [8b9a3abcd2].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
+
|
include ../extra.mk
SUBDIRS = ${RUNTIME} exceptions encodings forwarding
SUBDIRS_AFTER = ${BRIDGE} ${TLS}
DISTCLEAN = Info.plist objfw-defs.h
SHARED_LIB = ${OBJFW_SHARED_LIB}
STATIC_LIB = ${OBJFW_STATIC_LIB}
FRAMEWORK = ${OBJFW_FRAMEWORK}
LIB_MAJOR = ${OBJFW_LIB_MAJOR}
LIB_MINOR = ${OBJFW_LIB_MINOR}
LIB_PATCH = ${OBJFW_LIB_PATCH}
SRCS = OFApplication.m \
OFArray.m \
OFBlock.m \
OFCharacterSet.m \
OFColor.m \
OFConstantString.m \
|
︙ | | |
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
|
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
|
-
-
-
-
+
+
+
+
+
|
OFMutableUTF8String.m \
OFRangeCharacterSet.m \
OFSandbox.m \
OFStrFTime.m \
OFStrPTime.m \
OFSubarray.m \
OFSubdata.m \
OFTaggedPointerColor.m \
OFTaggedPointerDate.m \
OFTaggedPointerNumber.m \
OFUTF8String.m \
${LIBBASES_M} \
${RUNTIME_AUTORELEASE_M} \
${RUNTIME_INSTANCE_M} \
${UNICODE_M}
${UNICODE_M} \
${USE_SRCS_TAGGED_POINTERS}
SRCS_FILES += OFFileIRIHandler.m
SRCS_SOCKETS += OFAsyncIPSocketConnector.m \
OFDNSResolverSettings.m \
${OF_EPOLL_KERNEL_EVENT_OBSERVER_M} \
OFHTTPIRIHandler.m \
OFHostAddressResolver.m \
OFKernelEventObserver.m \
${OF_KQUEUE_KERNEL_EVENT_OBSERVER_M} \
${OF_POLL_KERNEL_EVENT_OBSERVER_M} \
${OF_SELECT_KERNEL_EVENT_OBSERVER_M} \
OFTCPSocketSOCKS5Connector.m
SRCS_TAGGED_POINTERS = OFTaggedPointerColor.m \
OFTaggedPointerDate.m \
OFTaggedPointerNumber.m
SRCS_WINDOWS += platform/Windows/OFWin32ConsoleStdIOStream.m \
versioninfo.rc
OBJS_EXTRA = exceptions/exceptions.a \
encodings/encodings.a \
forwarding/forwarding.a
LIB_OBJS_EXTRA = exceptions/exceptions.lib.a \
|
︙ | | |
Modified src/OFDate.h
from [0270f8788a]
to [3a59646909].
︙ | | |
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
|
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
|
+
+
+
+
+
+
+
+
|
*/
- (OFComparisonResult)compare: (OFDate *)date;
/**
* @brief Creates a string of the date with the specified format.
*
* See the man page for `strftime` for information on the format.
*
* @warning The format is currently limited to the following format specifiers:
* %%a, %%b, %%d, %%e, %%H, %%m, %%M, %%S, %%y, %%Y, %%z, %%, %%n and
* %%t.
*
* @param format The format for the date string
* @return A new, autoreleased OFString
* @throw OFInvalidFormatException The specified format is invalid
*/
- (OFString *)dateStringWithFormat: (OFConstantString *)format;
/**
* @brief Creates a string of the local date with the specified format.
*
* See the man page for `strftime` for information on the format.
*
* @warning The format is currently limited to the following format specifiers:
* %%a, %%b, %%d, %%e, %%H, %%m, %%M, %%S, %%y, %%Y, %%z, %%, %%n and
* %%t.
*
* @param format The format for the date string
* @return A new, autoreleased OFString
* @throw OFInvalidFormatException The specified format is invalid
*/
- (OFString *)localDateStringWithFormat: (OFConstantString *)format;
|
︙ | | |
Modified src/OFStream+Private.h
from [494fcdeb75]
to [36f9ef0ce7].
︙ | | |
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
13
14
15
16
17
18
19
20
21
22
23
24
25
|
-
|
* file.
*/
#import "OFStream.h"
OF_ASSUME_NONNULL_BEGIN
OF_DIRECT_MEMBERS
@interface OFStream ()
@property (readonly, nonatomic, getter=of_isWaitingForDelimiter)
bool of_waitingForDelimiter;
@end
OF_ASSUME_NONNULL_END
|
Modified src/OFTaggedPointerColor.h
from [10e58a16ea]
to [236b8e40fc].
︙ | | |
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
-
-
|
* file.
*/
#import "OFColor.h"
OF_ASSUME_NONNULL_BEGIN
#ifdef OF_OBJFW_RUNTIME
@interface OFTaggedPointerColor: OFColor
+ (OFTaggedPointerColor *)colorWithRed: (uint8_t)red
green: (uint8_t)green
blue: (uint8_t)blue;
@end
#endif
OF_ASSUME_NONNULL_END
|
Modified src/OFTaggedPointerColor.m
from [0651eb80cd]
to [cd03108b2d].
︙ | | |
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
-
|
* file.
*/
#include "config.h"
#import "OFTaggedPointerColor.h"
#ifdef OF_OBJFW_RUNTIME
static int colorTag;
@implementation OFTaggedPointerColor
+ (void)initialize
{
if (self == [OFTaggedPointerColor class])
colorTag = objc_registerTaggedPointerClass(self);
|
︙ | | |
48
49
50
51
52
53
54
55
|
47
48
49
50
51
52
53
|
-
|
if (alpha != NULL)
*alpha = 1;
}
OF_SINGLETON_METHODS
@end
#endif
|
Modified src/OFTaggedPointerDate.h
from [f3031387d9]
to [6927b6ee5d].
︙ | | |
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
-
+
|
* file.
*/
#import "OFDate.h"
OF_ASSUME_NONNULL_BEGIN
#if defined(OF_OBJFW_RUNTIME) && UINTPTR_MAX == UINT64_MAX
#if UINTPTR_MAX == UINT64_MAX
@interface OFTaggedPointerDate: OFDate
+ (OFTaggedPointerDate *)dateWithUInt64TimeIntervalSince1970: (uint64_t)value;
@end
#endif
OF_ASSUME_NONNULL_END
|
Modified src/OFTaggedPointerDate.m
from [1b188d7d8a]
to [d5cac14af1].
︙ | | |
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
-
+
|
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFTaggedPointerDate.h"
#if defined(OF_OBJFW_RUNTIME) && UINTPTR_MAX == UINT64_MAX
#if UINTPTR_MAX == UINT64_MAX
static int dateTag;
@implementation OFTaggedPointerDate
+ (void)initialize
{
if (self == [OFTaggedPointerDate class])
dateTag = objc_registerTaggedPointerClass(self);
|
︙ | | |
Modified src/OFTaggedPointerNumber.h
from [ab4cf3f56e]
to [f83fa1deb9].
︙ | | |
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
13
14
15
16
17
18
19
20
21
22
23
24
25
|
-
-
+
-
|
* file.
*/
#import "OFNumber.h"
OF_ASSUME_NONNULL_BEGIN
#ifdef OF_OBJFW_RUNTIME
# define OFTaggedPointerNumberTagBits 4
#define OFTaggedPointerNumberTagBits 4
@interface OFTaggedPointerNumber: OFNumber
@end
#endif
OF_ASSUME_NONNULL_END
|
Modified src/OFTaggedPointerNumber.m
from [afd66e3faa]
to [046d1b8a88].
︙ | | |
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
-
|
#include "config.h"
#import "OFTaggedPointerNumber.h"
#import "OFInvalidFormatException.h"
#ifdef OF_OBJFW_RUNTIME
enum Tag {
tagChar,
tagShort,
tagInt,
tagLong,
tagLongLong,
tagUnsignedChar,
|
︙ | | |
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
|
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
|
-
+
|
case tagUnsignedLongLong:
return @encode(unsigned long long);
default:
@throw [OFInvalidFormatException exception];
}
}
# define RETURN_VALUE \
#define RETURN_VALUE \
uintptr_t value = object_getTaggedPointerValue(self); \
\
switch (value & tagMask) { \
case tagChar: \
return (signed char)(unsigned char) \
(value >> OFTaggedPointerNumberTagBits); \
case tagShort: \
|
︙ | | |
189
190
191
192
193
194
195
196
197
198
199
200
|
188
189
190
191
192
193
194
195
196
197
198
|
-
+
-
|
RETURN_VALUE
}
- (double)doubleValue
{
RETURN_VALUE
}
# undef RETURN_VALUE
#undef RETURN_VALUE
OF_SINGLETON_METHODS
@end
#endif
|
Modified src/bridge/Makefile
from [5a2e1acbf4]
to [311785c185].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
-
-
+
+
+
|
include ../../extra.mk
DISTCLEAN = Info.plist
SHARED_LIB = ${OBJFWBRIDGE_SHARED_LIB}
STATIC_LIB = ${OBJFWBRIDGE_STATIC_LIB}
FRAMEWORK = ${OBJFWBRIDGE_FRAMEWORK}
LIB_MAJOR = ${OBJFW_LIB_MAJOR}
LIB_MINOR = ${OBJFW_LIB_MINOR}
LIB_MAJOR = ${OBJFWBRIDGE_LIB_MAJOR}
LIB_MINOR = ${OBJFWBRIDGE_LIB_MINOR}
LIB_PATCH = ${OBJFWBRIDGE_LIB_PATCH}
SRCS = OFArray+NSObject.m \
OFEnumerator+NSObject.m \
OFException+Swift.m \
OFDictionary+NSObject.m \
OFNumber+NSObject.m \
OFSet+NSObject.m \
|
︙ | | |
Modified src/forwarding/forwarding-amd64-elf.S
from [3465a8f0c9]
to [3634b90fe2].
︙ | | |
216
217
218
219
220
221
222
223
224
225
|
216
217
218
219
220
221
222
223
224
225
|
-
+
|
.quad 0, sel_forwardingTargetForSelector_
.short 0, 0
.long 0
.quad 0
module:
.quad 8, 32, 0, symtab
#if defined(OF_LINUX) || defined(OF_HURD)
#if defined(OF_LINUX) || defined(OF_HAIKU) || defined(OF_HURD)
.section .note.GNU-stack, "", %progbits
#endif
|
Modified src/forwarding/forwarding-arm-elf.S
from [bde319f807]
to [594651911a].
︙ | | |
164
165
166
167
168
169
170
171
172
173
|
164
165
166
167
168
169
170
171
172
173
|
-
+
|
.long 0, sel_forwardingTargetForSelector_
.short 0, 0
.long 0
.long 0
module:
.long 8, 16, 0, symtab
#if defined(OF_LINUX) || defined(OF_HURD)
#if defined(OF_LINUX) || defined(OF_HAIKU) || defined(OF_HURD)
.section .note.GNU-stack, "", %progbits
#endif
|
Modified src/forwarding/forwarding-arm64-elf.S
from [82ae5367bb]
to [0aaed32730].
︙ | | |
122
123
124
125
126
127
128
129
130
131
|
122
123
124
125
126
127
128
129
130
131
|
-
+
|
.xword 0, sel_forwardingTargetForSelector_
.short 0, 0
.long 4
.xword 0
module:
.xword 8, 32, 0, symtab
#if defined(OF_LINUX) || defined(OF_HURD)
#if defined(OF_LINUX) || defined(OF_HAIKU) || defined(OF_HURD)
.section .note.GNU-stack, "", %progbits
#endif
|
Modified src/forwarding/forwarding-mips-elf.S
from [7bd6ca0e97]
to [27b4e12fcc].
︙ | | |
320
321
322
323
324
325
326
327
328
329
|
320
321
322
323
324
325
326
327
328
329
|
-
+
|
.long 0, sel_forwardingTargetForSelector_
.short 0, 0
.long 0
.long 0
module:
.long 8, 16, 0, symtab
#if defined(OF_LINUX) || defined(OF_HURD)
#if defined(OF_LINUX) || defined(OF_HAIKU) || defined(OF_HURD)
.section .note.GNU-stack, "", %progbits
#endif
|
Modified src/forwarding/forwarding-powerpc-elf.S
from [744c6a3cb8]
to [22c25e7609].
︙ | | |
353
354
355
356
357
358
359
360
361
362
|
353
354
355
356
357
358
359
360
361
362
|
-
+
|
.long sel_forwardingTargetForSelector_
.Lgot_OFMethodNotFound:
.long OFMethodNotFound
.Lgot_OFMethodNotFound_stret:
.long OFMethodNotFound_stret
#endif
#if defined(OF_LINUX) || defined(OF_HURD)
#if defined(OF_LINUX) || defined(OF_HAIKU) || defined(OF_HURD)
.section .note.GNU-stack, "", @progbits
#endif
|
Modified src/forwarding/forwarding-sparc-elf.S
from [88387a31bb]
to [40522bfc56].
︙ | | |
186
187
188
189
190
191
192
193
194
195
|
186
187
188
189
190
191
192
193
194
195
|
-
+
|
.word 0, sel_forwardingTargetForSelector_
.half 0, 0
.word 0
.word 0
module:
.word 8, 16, 0, symtab
#if defined(OF_LINUX) || defined(OF_HURD)
#if defined(OF_LINUX) || defined(OF_HAIKU) || defined(OF_HURD)
.section .note.GNU-stack, "", %progbits
#endif
|
Modified src/forwarding/forwarding-sparc64-elf.S
from [591e0b9534]
to [67cee61a30].
︙ | | |
246
247
248
249
250
251
252
253
254
255
|
246
247
248
249
250
251
252
253
254
255
|
-
+
|
.xword 0, sel_forwardingTargetForSelector_
.half 0, 0
.word 0
.xword 0
module:
.xword 8, 32, 0, symtab
#if defined(OF_LINUX) || defined(OF_HURD)
#if defined(OF_LINUX) || defined(OF_HAIKU) || defined(OF_HURD)
.section .note.GNU-stack, "", %progbits
#endif
|
Modified src/forwarding/forwarding-x86-elf.S
from [8e73449724]
to [b808836991].
︙ | | |
191
192
193
194
195
196
197
198
199
200
|
191
192
193
194
195
196
197
198
199
200
|
-
+
|
.long 0, sel_forwardingTargetForSelector_
.short 0, 0
.long 0
.long 0
module:
.long 8, 16, 0, symtab
#if defined(OF_LINUX) || defined(OF_HURD)
#if defined(OF_LINUX) || defined(OF_HAIKU) || defined(OF_HURD)
.section .note.GNU-stack, "", %progbits
#endif
|
Modified src/macros.h
from [50c6f2e2c4]
to [caf7b03bf1].
︙ | | |
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
|
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
|
+
+
+
+
+
+
|
if OF_UNLIKELY (!(cond)) \
objc_error("ObjFWRT @ " __FILE__ ":" \
OF_STRINGIFY(__LINE__), \
"Failed to ensure condition:\n" #cond); \
} while(0)
#else
@class OFConstantString;
# ifdef __cplusplus
extern "C" {
# endif
extern void OFLog(OFConstantString *_Nonnull, ...);
# ifdef __cplusplus
}
# endif
# define OFEnsure(cond) \
do { \
if OF_UNLIKELY (!(cond)) { \
OFLog(@"Failed to ensure condition in " \
@__FILE__ ":%d: " @#cond, __LINE__); \
abort(); \
} \
|
︙ | | |
Modified src/runtime/Makefile
from [8966f75711]
to [af674fab60].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
+
|
include ../../extra.mk
SUBDIRS = lookup-asm
DISTCLEAN = Info.plist
SHARED_LIB = ${OBJFWRT_SHARED_LIB}
STATIC_LIB = ${OBJFWRT_STATIC_LIB}
FRAMEWORK = ${OBJFWRT_FRAMEWORK}
LIB_MAJOR = ${OBJFWRT_LIB_MAJOR}
LIB_MINOR = ${OBJFWRT_LIB_MINOR}
LIB_PATCH = ${OBJFWRT_LIB_PATCH}
SRCS = arc.m \
autorelease.m \
category.m \
class.m \
dtable.m \
exception.m \
|
︙ | | |
Modified src/runtime/ObjFWRT.h
from [44336ac424]
to [ed9b2489f9].
︙ | | |
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
|
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
|
-
+
-
+
-
+
-
+
|
* pointers with
*/
extern void objc_setTaggedPointerSecret(uintptr_t secret);
/**
* @brief Registers a class for tagged pointers.
*
* @param class The class to register for tagged pointers
* @param class_ The class to register for tagged pointers
* @return The tagged pointer ID for the registered class
*/
extern int objc_registerTaggedPointerClass(Class _Nonnull class);
extern int objc_registerTaggedPointerClass(Class _Nonnull class_);
/**
* @brief Returns whether the specified object is a tagged pointer.
*
* @param object The object to inspect
* @return Whether the specified object is a tagged pointer
*/
extern bool object_isTaggedPointer(id _Nullable object);
/**
* @brief Returns the value of the specified tagged pointer.
*
* @param object The object whose tagged pointer value should be returned
* @return The tagged pointer value of the object
*/
extern uintptr_t object_getTaggedPointerValue(id _Nonnull object);
/**
* @brief Creates a new tagged pointer.
*
* @param class The tag ID for the tagged pointer class to use
* @param class_ The tag ID for the tagged pointer class to use
* @param value The value the tagged pointer should have
* @return A tagged pointer, or `nil` if it could not be created
*/
extern id _Nullable objc_createTaggedPointer(int class, uintptr_t value);
extern id _Nullable objc_createTaggedPointer(int class_, uintptr_t value);
/*
* Used by the compiler, but can also be called manually.
*
* These declarations are also required to prevent Clang's implicit
* declarations which include __declspec(dllimport) on Windows.
*/
|
︙ | | |
Modified src/runtime/lookup-asm/lookup-asm-amd64-elf.S
from [c64d3f82a3]
to [2f9e1b8cac].
︙ | | |
89
90
91
92
93
94
95
96
97
98
|
89
90
91
92
93
94
95
96
97
98
|
-
+
|
leaq nilMethod(%rip), %rax
ret
nilMethod:
xorq %rax, %rax
ret
#if defined(OF_LINUX) || defined(OF_HURD)
#if defined(OF_LINUX) || defined(OF_HAIKU) || defined(OF_HURD)
.section .note.GNU-stack, "", %progbits
#endif
|
Modified src/runtime/lookup-asm/lookup-asm-arm-elf.S
from [ef1c429a04]
to [30c6881b76].
︙ | | |
111
112
113
114
115
116
117
118
119
120
|
111
112
113
114
115
116
117
118
119
120
|
-
+
|
adr r0, nilMethod
bx lr
nilMethod:
mov r0, #0
bx lr
#if defined(OF_LINUX) || defined(OF_HURD)
#if defined(OF_LINUX) || defined(OF_HAIKU) || defined(OF_HURD)
.section .note.GNU-stack, "", %progbits
#endif
|
Modified src/runtime/lookup-asm/lookup-asm-arm64-elf.S
from [da24cfc12d]
to [761debfa49].
︙ | | |
89
90
91
92
93
94
95
96
97
98
|
89
90
91
92
93
94
95
96
97
98
|
-
+
|
adr x0, nilMethod
ret
nilMethod:
mov x0, #0
ret
#if defined(OF_LINUX) || defined(OF_HURD)
#if defined(OF_LINUX) || defined(OF_HAIKU) || defined(OF_HURD)
.section .note.GNU-stack, "", %progbits
#endif
|
Modified src/runtime/lookup-asm/lookup-asm-mips-elf.S
from [f31e7b899e]
to [67d5199bae].
︙ | | |
150
151
152
153
154
155
156
157
158
159
|
150
151
152
153
154
155
156
157
158
159
|
-
+
|
GENERATE_LOOKUP_SUPER objc_msg_lookup_super objc_msg_lookup
GENERATE_LOOKUP_SUPER objc_msg_lookup_super_stret objc_msg_lookup_stret
nilMethod:
move $v0, $zero
jr $ra
#if defined(OF_LINUX) || defined(OF_HURD)
#if defined(OF_LINUX) || defined(OF_HAIKU) || defined(OF_HURD)
.section .note.GNU-stack, "", %progbits
#endif
|
Modified src/runtime/lookup-asm/lookup-asm-mips64-n64-elf.S
from [2cfdbef557]
to [b34841fe09].
︙ | | |
130
131
132
133
134
135
136
137
138
139
|
130
131
132
133
134
135
136
137
138
139
|
-
+
|
GENERATE_LOOKUP_SUPER objc_msg_lookup_super objc_msg_lookup
GENERATE_LOOKUP_SUPER objc_msg_lookup_super_stret objc_msg_lookup_stret
nilMethod:
move $v0, $zero
jr $ra
#if defined(OF_LINUX) || defined(OF_HURD)
#if defined(OF_LINUX) || defined(OF_HAIKU) || defined(OF_HURD)
.section .note.GNU-stack, "", %progbits
#endif
|
Modified src/runtime/lookup-asm/lookup-asm-powerpc-elf.S
from [97b8fd704a]
to [3fdc637787].
︙ | | |
164
165
166
167
168
169
170
171
172
173
|
164
165
166
167
168
169
170
171
172
173
|
-
+
|
.long objc_methodNotFound_stret
.Lgot_objc_taggedPointerSecret:
.long objc_taggedPointerSecret
.Lgot_objc_taggedPointerClasses:
.long objc_taggedPointerClasses
#endif
#if defined(OF_LINUX) || defined(OF_HURD)
#if defined(OF_LINUX) || defined(OF_HAIKU) || defined(OF_HURD)
.section .note.GNU-stack, "", @progbits
#endif
|
Modified src/runtime/lookup-asm/lookup-asm-powerpc64-elf.S
from [2a2bbd4d55]
to [0383174096].
︙ | | |
154
155
156
157
158
159
160
161
162
163
|
154
155
156
157
158
159
160
161
162
163
|
-
+
|
#endif
.Lbegin_nilMethod:
li %r3, 0
blr
.type nilMethod, @function
.size nilMethod, .-.Lbegin_nilMethod
#if defined(OF_LINUX) || defined(OF_HURD)
#if defined(OF_LINUX) || defined(OF_HAIKU) || defined(OF_HURD)
.section .note.GNU-stack, "", @progbits
#endif
|
Modified src/runtime/lookup-asm/lookup-asm-sparc-elf.S
from [891512ba88]
to [06d51d4229].
︙ | | |
140
141
142
143
144
145
146
147
148
149
|
140
141
142
143
144
145
146
147
148
149
|
-
+
|
or %o0, %lo(nilMethod), %o0
#endif
nilMethod:
retl
clr %o0
#if defined(OF_LINUX) || defined(OF_HURD)
#if defined(OF_LINUX) || defined(OF_HAIKU) || defined(OF_HURD)
.section .note.GNU-stack, "", %progbits
#endif
|
Modified src/runtime/lookup-asm/lookup-asm-sparc64-elf.S
from [6533df3a9f]
to [bf52d34777].
︙ | | |
137
138
139
140
141
142
143
144
145
146
|
137
138
139
140
141
142
143
144
145
146
|
-
+
|
or %o0, %lo(nilMethod), %o0
#endif
nilMethod:
retl
clr %o0
#if defined(OF_LINUX) || defined(OF_HURD)
#if defined(OF_LINUX) || defined(OF_HAIKU) || defined(OF_HURD)
.section .note.GNU-stack, "", %progbits
#endif
|
Modified src/runtime/lookup-asm/lookup-asm-x86-elf.S
from [735d83d15c]
to [4341f730bd].
︙ | | |
106
107
108
109
110
111
112
113
114
115
|
106
107
108
109
110
111
112
113
114
115
|
-
+
|
xorl %eax, %eax
ret
getEIP:
movl (%esp), %eax
ret
#if defined(OF_LINUX) || defined(OF_HURD)
#if defined(OF_LINUX) || defined(OF_HAIKU) || defined(OF_HURD)
.section .note.GNU-stack, "", %progbits
#endif
|
Modified src/tls/Makefile
from [a6c2c67827]
to [730d8ef9c1].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
-
-
+
+
+
|
include ../../extra.mk
DISTCLEAN = Info.plist
SHARED_LIB = ${OBJFWTLS_SHARED_LIB}
STATIC_LIB = ${OBJFWTLS_STATIC_LIB}
FRAMEWORK = ${OBJFWTLS_FRAMEWORK}
LIB_MAJOR = ${OBJFW_LIB_MAJOR}
LIB_MINOR = ${OBJFW_LIB_MINOR}
LIB_MAJOR = ${OBJFWTLS_LIB_MAJOR}
LIB_MINOR = ${OBJFWTLS_LIB_MINOR}
LIB_PATCH = ${OBJFWTLS_LIB_PATCH}
INCLUDES := ObjFWTLS.h
SRCS = ${OF_GNUTLS_TLS_STREAM_M} \
${OF_OPENSSL_TLS_STREAM_M} \
${OF_SECURE_TRANSPORT_TLS_STREAM_M}
includesubdir = ObjFWTLS
|
︙ | | |
Modified src/tls/OFGnuTLSTLSStream.m
from [b0bb2b39ec]
to [ba84ecba17].
︙ | | |
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
+
|
#include "config.h"
#include <errno.h>
#import "OFGnuTLSTLSStream.h"
#import "OFData.h"
#import "OFStream+Private.h"
#import "OFAlreadyOpenException.h"
#import "OFInitializationFailedException.h"
#import "OFNotOpenException.h"
#import "OFReadFailedException.h"
#import "OFTLSHandshakeFailedException.h"
#import "OFWriteFailedException.h"
|
︙ | | |
188
189
190
191
192
193
194
195
196
197
198
199
200
201
|
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
- (bool)hasDataInReadBuffer
{
if (gnutls_record_check_pending(_session) > 0)
return true;
return super.hasDataInReadBuffer;
}
- (bool)of_isWaitingForDelimiter
{
/* FIXME: There should be a non-private API for this. */
/*
* If we still have pending data in the session, we haven't processed
* it yet to see if our delimiter is in there. So return false here, as
* that will signal the stream as ready for reading, which in turn will
* cause a read and checking for the delimiter.
*/
if (gnutls_record_check_pending(_session) > 0)
return false;
return super.of_waitingForDelimiter;
}
- (void)asyncPerformClientHandshakeWithHost: (OFString *)host
runLoopMode: (OFRunLoopMode)runLoopMode
{
static const OFTLSStreamErrorCode initFailedErrorCode =
OFTLSStreamErrorCodeInitializationFailed;
id exception = nil;
|
︙ | | |
Modified src/tls/OFOpenSSLTLSStream.m
from [d93e2e9a8c]
to [4f42a57c0b].
︙ | | |
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
+
|
#include "config.h"
#include <errno.h>
#import "OFOpenSSLTLSStream.h"
#import "OFData.h"
#import "OFStream+Private.h"
#import "OFAlreadyOpenException.h"
#import "OFInitializationFailedException.h"
#import "OFNotOpenException.h"
#import "OFReadFailedException.h"
#import "OFTLSHandshakeFailedException.h"
#import "OFWriteFailedException.h"
|
︙ | | |
199
200
201
202
203
204
205
206
207
208
209
210
211
212
|
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
- (bool)hasDataInReadBuffer
{
if (SSL_pending(_SSL) > 0 || BIO_ctrl_pending(_readBIO) > 0)
return true;
return super.hasDataInReadBuffer;
}
- (bool)of_isWaitingForDelimiter
{
/* FIXME: There should be a non-private API for this. */
/*
* If we still have pending data in the SSL connection, we haven't
* processed it yet to see if our delimiter is in there. So return
* false here, as that will signal the stream as ready for reading,
* which in turn will cause a read and checking for the delimiter.
*/
if (SSL_pending(_SSL))
return false;
/*
* If we still have data in our read BIO, it hasn't been processed by
* OpenSSL yet. As we have no idea what's in there, return false to
* signal the stream as ready for reading, which in turn will cause a
* read to check for the delimiter and in turn make OpenSSL process the
* data in the read BIO.
*/
if (BIO_ctrl_pending(_readBIO) > 0)
return false;
return super.of_waitingForDelimiter;
}
- (void)asyncPerformClientHandshakeWithHost: (OFString *)host
runLoopMode: (OFRunLoopMode)runLoopMode
{
static const OFTLSStreamErrorCode initFailedErrorCode =
OFTLSStreamErrorCodeInitializationFailed;
id exception = nil;
|
︙ | | |
Modified src/tls/OFSecureTransportTLSStream.m
from [c722ef4615]
to [4775886a79].
︙ | | |
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
+
|
*/
#include "config.h"
#include <errno.h>
#import "OFSecureTransportTLSStream.h"
#import "OFStream+Private.h"
#import "OFAlreadyOpenException.h"
#import "OFNotOpenException.h"
#import "OFReadFailedException.h"
#import "OFTLSHandshakeFailedException.h"
#import "OFWriteFailedException.h"
|
︙ | | |
174
175
176
177
178
179
180
181
182
183
184
185
186
187
|
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
if (SSLGetBufferedReadSize(_context, &bufferSize) == noErr &&
bufferSize > 0)
return true;
return super.hasDataInReadBuffer;
}
- (bool)of_isWaitingForDelimiter
{
size_t bufferSize;
/* FIXME: There should be a non-private API for this. */
/*
* If we still have pending data in the context, we haven't processed
* it yet to see if our delimiter is in there. So return false here, as
* that will signal the stream as ready for reading, which in turn will
* cause a read and checking for the delimiter.
*/
if (SSLGetBufferedReadSize(_context, &bufferSize) == noErr &&
bufferSize > 0)
return false;
return super.of_waitingForDelimiter;
}
- (void)asyncPerformClientHandshakeWithHost: (OFString *)host
runLoopMode: (OFRunLoopMode)runLoopMode
{
static const OFTLSStreamErrorCode initFailedErrorCode =
OFTLSStreamErrorCodeInitializationFailed;
id exception = nil;
|
︙ | | |