[openssl/openssl] 29d82b: djgpp: Inherit config from BASE_unix

jwt27 noreply at github.com
Thu Sep 29 10:03:37 UTC 2022


  Branch: refs/heads/master
  Home:   https://github.com/openssl/openssl
  Commit: 29d82bd95b6ef3428c7e776221612a083994219d
      https://github.com/openssl/openssl/commit/29d82bd95b6ef3428c7e776221612a083994219d
  Author: J.W. Jagersma <jwjagersma at 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 <levitte at openssl.org>
Reviewed-by: Tomas Mraz <tomas at openssl.org>
(Merged from https://github.com/openssl/openssl/pull/19274)


  Commit: 651255941c49a5089dfc011f2abd636433da8b82
      https://github.com/openssl/openssl/commit/651255941c49a5089dfc011f2abd636433da8b82
  Author: J.W. Jagersma <jwjagersma at 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 <levitte at openssl.org>
Reviewed-by: Tomas Mraz <tomas at openssl.org>
(Merged from https://github.com/openssl/openssl/pull/19274)


  Commit: 8ae74c5bc091e7388c082f090c1fde992c31320f
      https://github.com/openssl/openssl/commit/8ae74c5bc091e7388c082f090c1fde992c31320f
  Author: J.W. Jagersma <jwjagersma at 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 <levitte at openssl.org>
Reviewed-by: Tomas Mraz <tomas at openssl.org>
(Merged from https://github.com/openssl/openssl/pull/19274)


  Commit: cffb65f2ff85f19418ed121275901674824e52ca
      https://github.com/openssl/openssl/commit/cffb65f2ff85f19418ed121275901674824e52ca
  Author: J.W. Jagersma <jwjagersma at 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 <levitte at openssl.org>
Reviewed-by: Tomas Mraz <tomas at openssl.org>
(Merged from https://github.com/openssl/openssl/pull/19274)


Compare: https://github.com/openssl/openssl/compare/9710d72b95f4...cffb65f2ff85


More information about the openssl-commits mailing list