]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
os400: fixes to make-lib.sh and initscript.sh
authorjonrumsey <jrumsey@uk.ibm.com>
Mon, 9 Jan 2023 13:22:36 +0000 (13:22 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Tue, 10 Jan 2023 08:29:04 +0000 (09:29 +0100)
Adjust how exports list is generated from header files to account for
declarations across multiple lines and CURL_DEPRECATED(...) tags.

Update initscript.sh

Specify qadrt_use_inline to prevent unistd.h in ASCII runtime defining
close(a) -> close_a(a)

Fixes #10266
Closes #10267

packages/OS400/initscript.sh
packages/OS400/make-lib.sh

index 75431f5a5d9012bb61e28612e72a2d68ed7eb82b..2a9eb419cd6bfe913b0b2fda6073434e2ff76127 100755 (executable)
@@ -234,7 +234,7 @@ make_module()
         CMD="${CMD} OPTIMIZE(${OPTIMIZE})"
         CMD="${CMD} DBGVIEW(${DEBUG})"
 
-        DEFINES="${3} BUILDING_LIBCURL"
+        DEFINES="${3} BUILDING_LIBCURL 'qadrt_use_inline'"
 
         if [ "${WITH_ZLIB}" != "0" ]
         then    DEFINES="${DEFINES} HAVE_LIBZ"
index b870ad3fca2b9ee8c781164b10c92d885787765f..d6be13a3f1d61a4d859f170e7203adaae907af0b 100755 (executable)
@@ -129,15 +129,26 @@ fi
 
 
 #       Gather the list of symbols to export.
+#       First use awk to pull all CURL_EXTERN function prototypes from
+#       the header files, pass through to sed to strip CURL_DEPRECATED(..)
+#       then back to awk to pull the string immediately to the left of a
+#       bracket stripping any spaces or *'s.
 
-EXPORTS=`grep '^CURL_EXTERN[[:space:]]'                                 \
+EXPORTS=`awk '/^CURL_EXTERN/,/;/'                                       \
               "${TOPDIR}"/include/curl/*.h                              \
               "${SCRIPTDIR}/ccsidcurl.h"                                |
-         sed -e 's/^.*CURL_EXTERN[[:space:]]\(.*\)(.*$/\1/'             \
-             -e 's/[[:space:]]*$//'                                     \
-             -e 's/^.*[[:space:]][[:space:]]*//'                        \
-             -e 's/^\*//'                                               \
-             -e 's/(\(.*\))/\1/'`
+         sed 's| CURL_DEPRECATED(.*)||g'                                |
+         awk '{br=index($0,"(");                                        \
+              if (br) {                                                 \
+                for(c=br-1; ;c--) {                                     \
+                  if (c==1) {                                           \
+                    print substr($0,c,br-1); break                      \
+                  } else if (match(substr($0, c, br-c), "[ *]") != 0) { \
+                    print substr($0, c+1, br-c-1); break                \
+                  }                                                     \
+                }                                                       \
+              }                                                         \
+        }'`
 
 #       Create the service program exportation file in DB2 member if needed.