Branch: refs/heads/master Home: https://github.com/openssl/openssl Commit: 29d82bd95b6ef3428c7e776221612a083994219d https://github.com/openssl/openssl/commit/29d82bd95b6ef3428c7e776221612a083994219d Author: J.W. Jagersma <jwjager...@gmail.com> Date: 2022-09-29 (Thu, 29 Sep 2022)
Changed paths: M Configurations/50-djgpp.conf Log Message: ----------- djgpp: Inherit config from BASE_unix Build failed on djgpp due to missing config vars 'AR' and 'ARFLAGS'. Additionally, '-lz' was not added to 'lflags' when zlib support was enabled. Inheriting configuration variables from BASE_unix solves both these issues. CLA: trivial Reviewed-by: Richard Levitte <levi...@openssl.org> Reviewed-by: Tomas Mraz <to...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19274) Commit: 651255941c49a5089dfc011f2abd636433da8b82 https://github.com/openssl/openssl/commit/651255941c49a5089dfc011f2abd636433da8b82 Author: J.W. Jagersma <jwjager...@gmail.com> Date: 2022-09-29 (Thu, 29 Sep 2022) Changed paths: M include/internal/e_os.h Log Message: ----------- djgpp: Use usleep() for ossl_sleep() This part failed to compile due to a circular dependency between internal/e_os.h and internal/time.h, when ossl_sleep() falls back to a busy wait. However, djgpp has a usleep function, so it can use the regular Unix version of ossl_sleep(). It's not great though. The resolution is only ~55ms, and it may break when a user program hooks the timer interrupt without periodically updating BIOS time. A high-resolution alternative is uclock(), but that is generally less desirable since it reprograms the system timer. The circular dependency is still there and may still cause trouble for other platforms. CLA: trivial Reviewed-by: Richard Levitte <levi...@openssl.org> Reviewed-by: Tomas Mraz <to...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19274) Commit: 8ae74c5bc091e7388c082f090c1fde992c31320f https://github.com/openssl/openssl/commit/8ae74c5bc091e7388c082f090c1fde992c31320f Author: J.W. Jagersma <jwjager...@gmail.com> Date: 2022-09-29 (Thu, 29 Sep 2022) Changed paths: M include/internal/sockets.h Log Message: ----------- djgpp: Define WATT32_NO_OLDIES before including socket headers If this macro is left undefined, Watt-32 will "helpfully" declare some typedefs such as 'byte' and 'word' in the global namespace. This broke compilation of apps/s_client.c. CLA: trivial Reviewed-by: Richard Levitte <levi...@openssl.org> Reviewed-by: Tomas Mraz <to...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19274) Commit: cffb65f2ff85f19418ed121275901674824e52ca https://github.com/openssl/openssl/commit/cffb65f2ff85f19418ed121275901674824e52ca Author: J.W. Jagersma <jwjager...@gmail.com> Date: 2022-09-29 (Thu, 29 Sep 2022) Changed paths: M crypto/asn1/a_time.c Log Message: ----------- djgpp: Set TZ=UTC to convert UTC timestamp to time_t Since djgpp has neither a timezone variable or timegm(), this horrible method must be used. It is the only one I could find that produces accurate results, and is recommended as portable alternative to timegm() by the GNU libc manual. Reference: https://www.gnu.org/software/libc/manual/html_node/Broken_002ddown-Time.html#index-timegm Now, a much nicer alternative solution could be: timestamp_local = mktime(timestamp_tm); timestamp_utc = timestamp_local + timestamp_tm->tm_gmtoff - (timestamp_tm->tm_isdst ? 3600 : 0); This works due to the fact that mktime() populates the tm_gmtoff and tm_isdst fields in the source timestamp. It is accurate everywhere in the world, *except* on Lord Howe Island, Australia, where a 30 minute DST offset is used. Reviewed-by: Richard Levitte <levi...@openssl.org> Reviewed-by: Tomas Mraz <to...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19274) Compare: https://github.com/openssl/openssl/compare/9710d72b95f4...cffb65f2ff85