Closed oomathias closed 11 years ago
Nope, it's clearly a 10.9 issue. I presume they moved the endian header to a different location or your include path's are not correct. Have a look where you find endian.h
/Applications/Xcode5-DP.app/.../SDKs/MacOSX10.9.sdk/usr/include/i386/endian.h
/Applications/Xcode5-DP.app/.../SDKs/MacOSX10.9.sdk/usr/include/machine/endian.h
/Applications/Xcode5-DP.app/.../SDKs/MacOSX10.9.sdk/usr/include/sys/_endian.h
The include is in XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__config:45
The lines :
0 #ifdef __FreeBSD__
1 # include <sys/endian.h>
2 # if _BYTE_ORDER == _LITTLE_ENDIAN
3 # define _LIBCPP_LITTLE_ENDIAN 1
4 # define _LIBCPP_BIG_ENDIAN 0
5 # else // _BYTE_ORDER == _LITTLE_ENDIAN
6 # define _LIBCPP_LITTLE_ENDIAN 0
7 # define _LIBCPP_BIG_ENDIAN 1
8 # endif // _BYTE_ORDER == _LITTLE_ENDIAN
9 # ifndef __LONG_LONG_SUPPORTED
10 # define _LIBCPP_HAS_NO_LONG_LONG
11 # endif // __LONG_LONG_SUPPORTED
12 #endif // __FreeBSD__
Just noting that this is still happening with 10.9 GM
Any updates here? Or is there another possibility to get encfs work on 10.9 GM?
I do not run Mavericks currently. As soon as I will I would check on that. But I presume the ones porting home-brew to 10.9 will fix this before I will as I won't use 10.9 before ZFS is ported.
Be aware that I'm doing no active development on encfs. It's only that I've fixed the issues I had with it.
as a workaround:
sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/sys/_endian.h /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/sys/endian.h
@funzoneq: that didn't fix it for me. The original error on ConfigReader.lo went away, but was replaced with another one:
==> Downloading http://encfs.googlecode.com/files/encfs-1.7.4.tgz
Already downloaded: /Library/Caches/Homebrew/encfs-1.7.4.tgz
==> ./configure --prefix=/usr/local/Cellar/encfs/1.7.4 --with-boost=/usr/local
==> make
.
.
.
# include <sys/endian.h>
^
1 error generated.
make[2]: *** [readpassphrase.lo] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
Doing the same maneuver using /usr/include/sys/_endian, moved the error further along. I.e.:
sudo ln -s /usr/include/sys/_endian.h /usr/include/sys/endian.h
...resulted in a totally different error this time, during make:
Cipher.cpp:124:1: error: unknown type name 'shared_ptr'
shared_ptr<Cipher> Cipher::New(const string &name, int keyLen)
^
Cipher.cpp:124:11: error: expected unqualified-id
shared_ptr<Cipher> Cipher::New(const string &name, int keyLen)
^
Cipher.cpp:142:1: error: unknown type name 'shared_ptr'
shared_ptr<Cipher> Cipher::New( const Interface &iface, int keyLen )
^
Cipher.cpp:142:11: error: expected unqualified-id
shared_ptr<Cipher> Cipher::New( const Interface &iface, int keyLen )
^
4 errors generated.
make[2]: *** [Cipher.lo] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
I don't like the sudo command changing the layout of the headers. It's better to change the source to fix it on 10.9.0 I think. Will look into it when I'm on 10.9
Any reason this was closed? Will it not be fixed?
@mwehlou, hey Martin, I had the same issue and was able to compile it like this:
cd /usr/include/sys && ln -s _endian.h endian.h
port install clang-3.3
port clean encfs
port install encfs configure.compiler=macports-clang-3.3
However when I run it I get this:
dyld: lazy symbol binding failed: Symbol not found: __ZN5boost7archive17xml_iarchive_implINS0_12xml_iarchiveEEC2ERSij
Referenced from: /opt/local/lib/libencfs.6.dylib
Expected in: flat namespace
dyld: Symbol not found: __ZN5boost7archive17xml_iarchive_implINS0_12xml_iarchiveEEC2ERSij
Referenced from: /opt/local/lib/libencfs.6.dylib
Expected in: flat namespace
/opt/local/bin/encfssh: line 57: 9193 Trace/BPT trap: 5 encfs $enc_dir $unenc_dir $options
encfs failed
It seems to have something to do with my boost install (compiled it with the clang from Xcode 5.0.1 earlier)
Fixed the script for 10.9
:+1:
Thank you @jollyjinx
@jollyjinx: I cloned your new script and ran install.sh, and everything compiled and installed fine. But when I run encfs, I'm getting the exact same dyld error aglyzov had. Any idea what could cause that?
I've already added that issue and am working on it. it's a ++ library fuckup as it seems
update: I got it all working by also recompiling boost with the macports-clang-3.3 compiler and rebooting (needed for proper fuse4x kext install).
@aglyzov any chance you can share how you fixed your boost issue? I seem to have a similar issue, but I was trying to avoid installing macports.
dyld: lazy symbol binding failed: Symbol not found: __ZN5boost7archive17xml_iarchive_implINS0_12xml_iarchiveEEC2ERSij Referenced from: /usr/local/Cellar/encfsmacosxfuse/1.7.4p2/lib/libencfs.6.dylib Expected in: flat namespace
dyld: Symbol not found: __ZN5boost7archive17xml_iarchive_implINS0_12xml_iarchiveEEC2ERSij Referenced from: /usr/local/Cellar/encfsmacosxfuse/1.7.4p2/lib/libencfs.6.dylib Expected in: flat namespace
@mloveley, sure pal. I just recompiled both boost and encfs with the clang 3.3 that was installed by macports (instead of default clang that comes with Xcode 5.0.1).
port uninstall encfs boost
port install boost configure.compiler=macports-clang-3.3
port install encfs configure.compiler=macports-clang-3.3
port uninstall encfs boost fuse4x-kext fuse4x
port clean encfs boost fuse4x-kext fuse4x
port install boost configure.compiler=macports-clang-3.3
# reboot
port install encfs configure.compiler=macports-clang-3.3
Try this: https://gist.github.com/ghibble/7297078
@ghibble I've tried your formula, but this is what I get:
andreas-air:Formula andrea$ brew reinstall encfs
==> Reinstalling encfs
Error: You must brew link fuse4x' before encfs can be installed Error: Reinstall failed. andreas-air:Formula andrea$ brew install encfs Error: You must
brew link fuse4x' before encfs can be installed
andreas-air:Formula andrea$ brew link fuse4x
Linking /usr/local/Cellar/fuse4x/0.9.2... Warning: Could not link fuse4x. Unlinking...
Error: Could not symlink file: /usr/local/Cellar/fuse4x/0.9.2/lib/pkgconfig/fuse.pc Target /usr/local/lib/pkgconfig/fuse.pc already exists. You may need to delete it. To force the link and overwrite all other conflicting files, do: brew link --overwrite formula_name
To list all files that would be deleted: brew link --overwrite --dry-run formula_name andreas-air:Formula andrea$ brew link --overwrite --dry-run fuse4x Would remove: /usr/local/lib/pkgconfig/fuse.pc -> /usr/local/lib/pkgconfig/osxfuse.pc
andreas-air:Formula andrea$ brew link --overwrite fuse4x Linking /usr/local/Cellar/fuse4x/0.9.2... 7 symlinks created andreas-air:Formula andrea$ brew install encfs ==> Downloading http://encfs.googlecode.com/files/encfs-1.7.4.tgz Already downloaded: /Library/Caches/Homebrew/encfs-1.7.4.tgz ==> Patching patching file encfs/BlockNameIO.cpp patching file encfs/BlockNameIO.h patching file encfs/Cipher.cpp patching file encfs/Cipher.h patching file encfs/CipherFileIO.cpp patching file encfs/CipherFileIO.h patching file encfs/CipherKey.h patching file encfs/ConfigVar.h patching file encfs/Context.cpp patching file encfs/Context.h patching file encfs/DirNode.h patching file encfs/FSConfig.h patching file encfs/FileNode.cpp patching file encfs/FileNode.h patching file encfs/FileUtils.cpp patching file encfs/FileUtils.h patching file encfs/Interface.h patching file encfs/MACFileIO.cpp patching file encfs/MACFileIO.h patching file encfs/MemoryPool.cpp patching file encfs/NameIO.h patching file encfs/NullCipher.cpp patching file encfs/NullNameIO.cpp patching file encfs/SSL_Cipher.cpp patching file encfs/SSL_Cipher.h patching file encfs/StreamNameIO.h patching file encfs/encfs.cpp patching file encfs/encfs.h patching file encfs/encfsctl.cpp patching file encfs/main.cpp patching file encfs/test.cpp patching file intl/autosprintf.h ==> ./configure --prefix=/usr/local/Cellar/encfs/1.7.4 --with-boost=/usr/local ==> make make[2]: * [ConfigVar.lo] Error 1 1 error generated. make[2]: * [ConfigReader.lo] Error 1 make[1]: * [all-recursive] Error 1 make: * [all] Error 2
READ THIS: https://github.com/mxcl/homebrew/wiki/troubleshooting
These open issues may also help: https://github.com/mxcl/homebrew/issues/23738 https://github.com/mxcl/homebrew/pull/22824 andreas-air:Formula andrea$
Ok. I saw this fuse4x error too and overcome it somehow :| I think I rebuilt fuse4x too.
So at this point I suggest trying:
Upgrade to lastest Xcode command line tools.
$ brew reinstall fuse4x
$ brew reinstall fuse4x-kext
$ cd /usr/local/Library/Formula
$ wget https://gist.github.com/ghibble/7297078/raw/cae1ff000a5e1cfc670f5b7a611279ed494b63af/encfs.rb
$ brew reinstall encfs
I have added a 3rd file here (build output) (https://gist.github.com/ghibble/7297078). Which contains the output of building of Fuse4x and encfs on my machine. I hope this is useful to someone. Let me know if there is anything else I can try and report on to help everyone solve this.
This is the output error that I get http://dpaste.com/1441742/ Most important line: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__config:45:11: fatal error: 'sys/endian.h' file not found any idea how to fix this?
I duplicated _endian.h to endian.h in these two locations. I though the patches on encfs might have fixed this. But try "cp _endian.h endian.h" in these two locations. Please let me know if this solves it.
Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/sys/_endian.h Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/sys/endian.h Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/sys/_endian.h Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/sys/endian.h
Error: encfsmacosxfuse dependency gettext was built with the following C++ standard library: libc++ (from clang)
This is incompatible with the standard library being used to build encfsmacosxfuse: libstdc++ (from clang)
Please reinstall gettext using a compatible compiler. hint: Check https://github.com/mxcl/homebrew/wiki/C++-Standard-Libraries
brew install -v encfsmacosxfuse https://gist.github.com/Baltrunas/7542828
brew --config https://gist.github.com/Baltrunas/7542850
any idea how to fix this?
Hi try "brew reinstall gettext” … and then reinstall encfs
Thanks
On 19 Nov 2013, at 09:45, HImIK notifications@github.com wrote:
Error: encfsmacosxfuse dependency gettext was built with the following C++ standard library: libc++ (from clang)
This is incompatible with the standard library being used to build encfsmacosxfuse: libstdc++ (from clang)
Please reinstall gettext using a compatible compiler. hint: Check https://github.com/mxcl/homebrew/wiki/C++-Standard-Libraries brew install -v encfsmacosxfuse https://gist.github.com/Baltrunas/7542828
brew --config https://gist.github.com/Baltrunas/7542850
any idea how to fix this?
— Reply to this email directly or view it on GitHub.
I tried. It didn't help. Nothing was changed. Also I tried brew install -v encfs https://gist.github.com/Baltrunas/7543117
FYI, my solution was to remove the -DFreeBSD=10 flag from all flags.make files after running cmake.
https://gist.github.com/oomathias/8f0a0766e2a6285364db
Do you have any idea?