Opened 3 years ago

Last modified 5 months ago

#58605 assigned defect

cryptlib @3.4.5: Build fails due to undefined _Static_assert

Reported by: ryandesign (Ryan Schmidt) Owned by:
Priority: Normal Milestone:
Component: ports Version:
Keywords: snowleopard Cc: cooljeanius (Eric Gallager)
Port: cryptlib

Description

cryptlib forces the use of clang and assumes it supports _Static_assert; the ancient version on Snow Leopard apparently does not.

Change History (4)

comment:1 Changed 2 years ago by kencu (Ken)

This doesn't happen any more, now that 10.6.8 defaults to clang-9.0.

However, build still fails because the clang-9.0 on 10.6.8 has the sanitzers disabled:

/opt/local/bin/clang-mp-9.0 -Os -isystem/opt/local/include -arch x86_64 -c -D__UNIX__ -DNDEBUG -I. -DDATA_LITTLEENDIAN -DFIXED_SEED=0xafe58b0d -DHAS_ODBC -I/usr/include -DHAS_LDAP -DHAS_ZLIB -Wno-pointer-sign -Wno-switch -fsanitize=safe-stack -fPIC -fno-common -DHAS_RECURSIVE_MUTEX -DOSVERSION=10 -fomit-frame-pointer -o ./shared-obj/bn_asm.o bn/bn_asm.c
clang: error: unsupported option '-fsanitize=safe-stack' for target 'x86_64-apple-darwin10.8.0'
clang: error: unsupported option '-fsanitize=safe-stack' for target 'x86_64-apple-darwin10.8.0'

comment:2 Changed 15 months ago by cooljeanius (Eric Gallager)

Cc: cooljeanius added

comment:3 Changed 5 months ago by barracuda156

I get this error on 10.6 PPC with gcc11:

make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_cryptlib/cryptlib/work/cryptlib346'
make[1]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_cryptlib/cryptlib/work/cryptlib346'
Undefined symbols:
  "_static_assert", referenced from:
      _readOcspResponseEntry in certrev.o
      _setSerialNumber in comp_set.o
      _updateStackedInfo in ext_chk.o
      _writePkiUserInfo in write.o
      _getInfo in ctx_aes.o
      _nextSievePosition in ctx_bnsieve.o
      _primeProbable in kg_prime.o
      _base64decodeLen in base64.o
      _processPreamble in cms_denv.o
      _processPreamble in pgp_denv.o
      _readHeaderLines in http_parse.o
      _certMgmtFunction in ca_misc.o
      _certMgmtFunction in ca_misc.o
      _certMgmtFunction in ca_misc.o
      _extractCertData in dbx_misc.o
      _setAccessMethodDBMS in dbx_misc.o
      _initAttributeACL in attr_acl.o
      _initAttributeACL in attr_acl.o
      _initAttributeACL in attr_acl.o
      _initAttributeACL in attr_acl.o
      _initAttributeACL in attr_acl.o
      _initAttributeACL in attr_acl.o
      _initAttributeACL in attr_acl.o
      _initAttributeACL in attr_acl.o
      _initAttributeACL in attr_acl.o
      _initAttributeACL in attr_acl.o
      _initAttributeACL in attr_acl.o
      _initAttributeACL in attr_acl.o
      _initAttributeACL in attr_acl.o
      _initAttributeACL in attr_acl.o
      _initAttributeACL in attr_acl.o
      _krnlDispatchThread in init.o
      _createAclConsistent in msg_acl.o
      _initObjects in objects.o
      _initObjects in objects.o
      _initObjects in objects.o
      _krnlMemalloc in sec_mem.o
      _initSemaphores in semaphore.o
      _initSendMessage in sendmsg.o
      _initSendMessage in sendmsg.o
      _initSendMessage in sendmsg.o
      _initSendMessage in sendmsg.o
      _initSendMessage in sendmsg.o
      _initSendMessage in sendmsg.o
      _initSendMessage in sendmsg.o
      _initSendMessage in sendmsg.o
      _initSendMessage in sendmsg.o
      _initSendMessage in sendmsg.o
      _getBuiltinObjectStorage in storage.o
      _initSysVars in os_spec.o
      _getRandomOutput in random.o
      _initRandomData in random.o
      _initX917 in rand_x917.o
      _readHeaderFunction in ssh2.o
      _encodeSendResponse in ssh2_chn.o
      _readPacketHeaderSSH2 in ssh2_rd.o
      _readPacketHeaderSSH2 in ssh2_rd.o
      _readPacketHeaderSSH2 in ssh2_rd.o
ld: symbol(s) not found
collect2: error: ld returned 1 exit status
make[2]: *** [libcl.3.4.dylib] Error 1
make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_cryptlib/cryptlib/work/cryptlib346'
make[1]: *** [Darwin] Error 2
make[1]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_cryptlib/cryptlib/work/cryptlib346'
make: *** [shared] Error 2

comment:4 Changed 5 months ago by kencu (Ken)

see comment:ticket:64427:10 for ideas on how to solve this.

putting a fix for assert.h into legacysupport might be the best path.

Last edited 5 months ago by ryandesign (Ryan Schmidt) (previous) (diff)
Note: See TracTickets for help on using tickets.