openssl: [Blocker] Build breakage at 3.0.3 on NonStop

As of 3.0.3, NonStop no longer builds. fipsprov.c now uses locale_t which was not in the previous version. Builds no longer work, as follows:

c99: running /usr/cmplr/ccomfe -Z8 -ZBL --c99 -ZO2 -Zg3 -ZS/tmp/t134217835AFDIHB.T -D_XOPEN_SOURCE -ZR8 -m -Zf -ZT -D_TANDEM_SOURCE -ZNW203 -ZNW220 -ZNW272 -ZNW734 -ZNW770 -ZNW1506 -Zz -I. -Icrypto -Iinclude -Iproviders/implementations/include -Iproviders/common/include -I/usr/include -DFIPS_MODULE -DOPENSSL_PIC -DOPENSSLDIR="/usr/local-ssl3.0/ssl" -DENGINESDIR="/usr/local-ssl3.0/lib64/engines-3" -DMODULESDIR="/usr/local-ssl3.0/lib64/ossl-modules" -DOPENSSL_BUILDING_OPENSSL -DOPENSSL_VPROC= -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1 -D_TANDEM_SOURCE -DB_ENDIAN -D_TANDEM_ARCH=3 -DNDEBUG --rvu_version=1605 providers/fips/fipsprov.c 
  static locale_t loc;
         ^
"/home/ituglib/randall/jenkins/.jenkins/workspace/OpenSSL-3.0_Pipeline/providers/fips/fipsprov.c", line 50: error(114):
          identifier "locale_t" is undefined

      loc = newlocale(LC_COLLATE_MASK, "C", (locale_t) 0);
            ^
"/home/ituglib/randall/jenkins/.jenkins/workspace/OpenSSL-3.0_Pipeline/providers/fips/fipsprov.c", line 514: error(114):
          identifier "newlocale" is undefined

      loc = newlocale(LC_COLLATE_MASK, "C", (locale_t) 0);
                      ^
"/home/ituglib/randall/jenkins/.jenkins/workspace/OpenSSL-3.0_Pipeline/providers/fips/fipsprov.c", line 514: error(114):
          identifier "LC_COLLATE_MASK" is undefined

      loc = newlocale(LC_COLLATE_MASK, "C", (locale_t) 0);
                                             ^
"/home/ituglib/randall/jenkins/.jenkins/workspace/OpenSSL-3.0_Pipeline/providers/fips/fipsprov.c", line 514: error(114):
          identifier "locale_t" is undefined

      loc = newlocale(LC_COLLATE_MASK, "C", (locale_t) 0);
                                                       ^
"/home/ituglib/randall/jenkins/.jenkins/workspace/OpenSSL-3.0_Pipeline/providers/fips/fipsprov.c", line 514: error(112):
          expected a ")"

      return (loc == (locale_t) 0) ? 0 : 1;
                                ^
"/home/ituglib/randall/jenkins/.jenkins/workspace/OpenSSL-3.0_Pipeline/providers/fips/fipsprov.c", line 516: error(112):
          expected a ")"

      freelocale(loc);
      ^
"/home/ituglib/randall/jenkins/.jenkins/workspace/OpenSSL-3.0_Pipeline/providers/fips/fipsprov.c", line 520: error(114):
          identifier "freelocale" is undefined

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Comments: 39 (36 by maintainers)

Commits related to this issue

Most upvoted comments

This is why dependency changes should not be done within a series (a.k.a. 3.0.x) but should be deferred to 3.1.

There is no way around fixing the strcasecmp problem other than doing what we did. Apart from doing our own implementation which would have its own set of serious problems like performance regression.

This has, unsurprisingly, become a much bigger issue that originally reported, making 3.0.3 essentially DOA.

Only for quite marginal systems which are not our primary targets.

Users of any system that are not within our primary targets should test the current code on the branches they use before release to report regressions. Or they should be prepared to patch the source post release.

If I had access to the operating system source code, many other problems would go away. Working on the patch.

If you use it and provide proper defines similar to Windows ones, it would definitely be better.

I cannot get into the underlying library, so not really an option.