-
Notifications
You must be signed in to change notification settings - Fork 20
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
MacOS Xcode-10 tokend fails to build #33
Comments
@frankmorgner I couldn't (so far) find a way to build OpenSC.tokend on Xcode-10 on High Sierra. As Mojave requires Xcode-10, this will be a critical/blocking issue. In theory, one could say "just switch to the native Could you help please? I have a few platforms running 10.13.6 with the latest Xcode-10.1, and tomorrow will have a "real" Mojave machine with Xcode-10.1. I can provide any logs that may be needed, and can test any modification. Here's what's happening when I just use I know you're mostly interested in |
Switching to libc++ in OpenSC.tokend requires the use of @@ -33,14 +33,15 @@
#include <security_utilities/globalizer.h>
#include <security_cdsa_utilities/cssmerrors.h>
+#if __GNUC__ > 4
#include <unordered_map>
-
-#if __GNUC__ > 2
+#elif __GNUC__ > 2
#include <ext/hash_map>
using __gnu_cxx::hash_map;
#else
#include <hash_map>
#endif
+#define hash_map unordered_map
namespace Security
{
@@ -138,7 +139,7 @@ protected:
virtual void lock();
virtual bool tryLock();
- typedef hash_map<_Handle, MappingHandle<_Handle> *> HandleMap;
+ typedef unordered_map<_Handle, MappingHandle<_Handle> *> HandleMap;
MappingHandle();
However, this gives a linker error:
There are some reports about clang's |
You cannot mix libc++ and libstdc++ libraries, they are not ABI compatible
|
Apple has removed |
There is maybe possible compile them from source |
Given that
Please excuse my ignorance - is that framework present in binary only, or in the source?
Do I need all of what you listed - including https://opensource.apple.com/source/SecurityTokend/SecurityTokend-55111/? I guess I'll have to give it a try, as there is no alternative that I can see for now. Ideally, CDSA would be killed after the last "important" 3rd-party app is released with CTK support, but that's not the case... |
@frankmorgner what file were you talking about here:
|
@metsma what's the best way to download those frameworks? The URLs point at Javascript-based web sites, and I wonder if there's a way and/or a tool to do it in a way more efficient that manually clicking on each and every file. |
https://opensource.apple.com/release/macos-10136.html here you can download whole package |
@metsma thank you - it helped! @martinpaljak I think it was you who built the original frameworks for |
Sorry, I don't remember much. I remember changing them manually to work with newer compilers, but that was pretty much "do something sensible that makes the warning go away" kind of thing. |
@mouse07410, If you want to dig deeper, https://ludovicrousseau.blogspot.com/2018/12/macos-mojave-and-smart-card-source-code.html has a link to the Tokend sourcecode. BTW, according to the docs, Google Chrome should have support for CryptoTokenKit now. Maybe other vendors also adopted this finally... |
I do. But it becomes more and more difficult, as less and less of the old MacOS-provided stuff, like
Yes, but I don't think it compiles under Xcode-10, that's the problem.
I have no doubt that all the vendors will eventually move to CTK, especially since it's becoming more and more difficult to support CDSA. My concern is how to "survive" the gap between OpenSC.tokend not compiling under Xcode-10 any more, and all the relevant apps moving to CTK and making OpenSC.tokend unnecessary. (And how long in time that gap is going to be.) |
With update of Xcode to Xcode-10, OpenSC.tokend can no longer be built. The main cause seems to be that Xcode-10 finally dropped completely support for the deprecated
libstdc++
.Attempts to build as-is lead to
libstdc++ not found. Switch to libc++ by using -std=libc++
message.Switching the project (via
Tokend.xcodeproj
) from "libstdc++" (which no longer exists on the system) to "Compiler default" results in a lot of errors likeHere's the complete log:
tokend-build-log.txt
Note, that under Xcode-9.4.1 it builds OK on High Sierra 10.13.6.
The text was updated successfully, but these errors were encountered: