Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix linking XrdSecztn when building for macOS #1470

Merged
merged 1 commit into from
Jun 28, 2021

Conversation

chrisburr
Copy link
Contributor

It's not clear to me why this was commented but this fixes the issue in conda-forge/xrootd-feedstock#45 where building with scitoken support for macOS fails with the below linker error (for both x86 and arm64).

Undefined symbols for architecture arm64:
  "XrdSysE2T(int)", referenced from:
      XrdSecProtocolztn::readFail(XrdOucErrInfo*, char const*, int) in XrdSecProtocolztn.cc.o
  "XrdOucString::find(char, int, bool)", referenced from:
      XrdSecProtocolztn::findToken(XrdOucErrInfo*, std::__1::vector<XrdOucString, std::__1::allocator<XrdOucString> >&, bool&) in XrdSecProtocolztn.cc.o
  "XrdOucString::endswith(char const*)", referenced from:
      XrdSecProtocolztn::findToken(XrdOucErrInfo*, std::__1::vector<XrdOucString, std::__1::allocator<XrdOucString> >&, bool&) in XrdSecProtocolztn.cc.o
  "XrdOucString::XrdOucString(char const*, int)", referenced from:
      XrdSecProtocolztn::getCredentials(XrdSecBuffer*, XrdOucErrInfo*) in XrdSecProtocolztn.cc.o
      _XrdSecProtocolztnInit in XrdSecProtocolztn.cc.o
  "XrdOucString::~XrdOucString()", referenced from:
      _XrdSecProtocolztnInit in XrdSecProtocolztn.cc.o
  "XrdOucString::operator=(char const*)", referenced from:
      _XrdSecProtocolztnInit in XrdSecProtocolztn.cc.o
  "XrdOucString::operator+=(char const*)", referenced from:
      _XrdSecProtocolztnInit in XrdSecProtocolztn.cc.o
  "XrdSecEntity::XrdSecEntity(char const*)", referenced from:
      XrdSecProtocolztn::XrdSecProtocolztn(char const*, XrdOucErrInfo*, bool&) in XrdSecProtocolztn.cc.o
      _XrdSecProtocolztnObject in XrdSecProtocolztn.cc.o
  "XrdSecEntity::~XrdSecEntity()", referenced from:
      XrdSecProtocolztn::XrdSecProtocolztn(char const*, XrdOucErrInfo*, bool&) in XrdSecProtocolztn.cc.o
      XrdSecProtocolztn::~XrdSecProtocolztn() in XrdSecProtocolztn.cc.o
      XrdSecProtocolztn::~XrdSecProtocolztn() in XrdSecProtocolztn.cc.o
  "XrdNetAddrInfo::isUsingTLS()", referenced from:
      _XrdSecProtocolztnObject in XrdSecProtocolztn.cc.o
  "XrdOucBuffPool::BuffSlot::Recycle(XrdOucBuffer*)", referenced from:
      XrdSecProtocolztn::XrdSecProtocolztn(char const*, XrdOucErrInfo*, bool&) in XrdSecProtocolztn.cc.o
      XrdSecProtocolztn::retToken(XrdOucErrInfo*, char const*, int) in XrdSecProtocolztn.cc.o
      XrdSecProtocolztn::getCredentials(XrdSecBuffer*, XrdOucErrInfo*) in XrdSecProtocolztn.cc.o
      XrdSecProtocolztn::getToken(XrdOucErrInfo*, XrdSecBuffer*) in XrdSecProtocolztn.cc.o
      XrdSecProtocolztn::readFail(XrdOucErrInfo*, char const*, int) in XrdSecProtocolztn.cc.o
      XrdSecProtocolztn::Authenticate(XrdSecBuffer*, XrdSecBuffer**, XrdOucErrInfo*) in XrdSecProtocolztn.cc.o
      XrdSecProtocolztn::SendAI(XrdOucErrInfo*, XrdSecBuffer**) in XrdSecProtocolztn.cc.o
      ...
  "XrdOucPinLoader::Resolve(char const*, int)", referenced from:
      (anonymous namespace)::getLinkage(XrdOucErrInfo*, char const*) in XrdSecProtocolztn.cc.o
  "XrdOucPinLoader::XrdOucPinLoader(char*, int, XrdVersionInfo*, char const*, char const*)", referenced from:
      (anonymous namespace)::getLinkage(XrdOucErrInfo*, char const*) in XrdSecProtocolztn.cc.o
  "XrdOucPinLoader::~XrdOucPinLoader()", referenced from:
      (anonymous namespace)::getLinkage(XrdOucErrInfo*, char const*) in XrdSecProtocolztn.cc.o
  "XrdOucTokenizer::Attach(char*)", referenced from:
      _XrdSecProtocolztnInit in XrdSecProtocolztn.cc.o
  "XrdOucTokenizer::GetLine()", referenced from:
      _XrdSecProtocolztnInit in XrdSecProtocolztn.cc.o
  "XrdOucTokenizer::GetToken(char**, int)", referenced from:
      _XrdSecProtocolztnInit in XrdSecProtocolztn.cc.o
ld: symbol(s) not found for architecture arm64
clang-11: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [src/CMakeFiles/XrdSecztn-5.dir/build.make:113: src/libXrdSecztn-5.so] Error 1
make[1]: *** [CMakeFiles/Makefile2:1497: src/CMakeFiles/XrdSecztn-5.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

@abh3 abh3 merged commit 2ee221f into xrootd:master Jun 28, 2021
@chrisburr chrisburr deleted the fix-XrdSecztn-link-macos branch June 29, 2021 07:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants