darlinghq / darling

Darwin/macOS emulation layer for Linux
http://www.darlinghq.org
GNU General Public License v3.0
11.54k stars 446 forks source link

Cannot make / Ubuntu 13.04 x86_64 #40

Closed kbeezie closed 8 years ago

kbeezie commented 11 years ago

Cannot complete make with darling (pulled as if 8/8/2013 9:15AM EST/GMT-5)

~/darling$ CC=clang CXX=clang++ cmake . -- No build type selected, default to Debug -- This is a 64-bit build -- Building ObjC ABI 2 You have called ADD_LIBRARY for library Carbon without any source files. This typically indicates a problem with your CMakeLists.txt file You have called ADD_LIBRARY for library AppKit without any source files. This typically indicates a problem with your CMakeLists.txt file CMake Warning (dev) at src/thin/CMakeLists.txt:12 (add_library): Policy CMP0002 is not set: Logical target names must be globally unique. Run "cmake --help-policy CMP0002" for policy details. Use the cmake_policy command to set the policy and suppress this warning. This warning is for project developers. Use -Wno-dev to suppress it.

You have called ADD_LIBRARY for library Carbon without any source files. This typically indicates a problem with your CMakeLists.txt file You have called ADD_LIBRARY for library auto without any source files. This typically indicates a problem with your CMakeLists.txt file -- Configuring done -- Generating done -- Build files have been written to: /home/kbeezie/darling

~/darling$ make [ 4%] Built target util [ 7%] Built target mach-o [ 8%] Built target motool [ 9%] Building CXX object src/dyld/CMakeFiles/dyld.dir/dl_public.o /home/kbeezie/darling/src/dyld/dl_public.cpp:15:8: error: expected unqualified-id static thread_local char g_lastError[1024]; ^ /home/kbeezie/darling/src/dyld/dl_public.cpp:16:8: error: expected unqualified-id static thread_local bool g_lastErrorRead = false; ^ /home/kbeezie/darling/src/dyld/dl_public.cpp:24:10: error: use of undeclared identifier 'g_lastError' strncpy(g_lastError, str.c_str(), sizeof(g_lastError)); ^ /home/kbeezie/darling/src/dyld/dl_public.cpp:25:2: error: use of undeclared identifier 'g_lastError' g_lastError[sizeof(g_lastError)-1] = 0; ^ /home/kbeezie/darling/src/dyld/dl_public.cpp:25:21: error: use of undeclared identifier 'g_lastError' g_lastError[sizeof(g_lastError)-1] = 0; ^ /home/kbeezie/darling/src/dyld/dl_public.cpp:26:2: error: use of undeclared identifier 'g_lastErrorRead' g_lastErrorRead = false; ^ /home/kbeezie/darling/src/dyld/dl_public.cpp:111:6: error: use of undeclared identifier 'g_lastErrorRead' if (g_lastErrorRead || !g_lastError[0]) ^ /home/kbeezie/darling/src/dyld/dl_public.cpp:111:26: error: use of undeclared identifier 'g_lastError' if (g_lastErrorRead || !g_lastError[0]) ^ /home/kbeezie/darling/src/dyld/dl_public.cpp:114:2: error: use of undeclared identifier 'g_lastErrorRead' g_lastErrorRead = true; ^ /home/kbeezie/darling/src/dyld/dl_public.cpp:115:9: error: use of undeclared identifier 'g_lastError' return g_lastError; ^ 10 errors generated. make[2]: * [src/dyld/CMakeFiles/dyld.dir/dl_public.o] Error 1 make[1]: * [src/dyld/CMakeFiles/dyld.dir/all] Error 2 make: *\ [all] Error 2

LubosD commented 11 years ago

What version of Clang is that? If you replace thread_local with __thread, does it help?

kbeezie commented 11 years ago

Ubuntu clang version 3.2-1~exp9ubuntu1 (tags/RELEASE_32/final) (based on LLVM 3.2) Target: x86_64-pc-linux-gnu Thread model: posix

Moment on thread_local

kbeezie commented 11 years ago

replacing both thread_local with __thread appears to have continued buil until 31% where it failed with:

[ 30%] Building CXX object src/libSystem/CMakeFiles/System.B.dylib.dir/libc/string.o [ 30%] Building CXX object src/libSystem/CMakeFiles/System.B.dylib.dir/libc/exec.o [ 31%] Building CXX object src/libSystem/CMakeFiles/System.B.dylib.dir/libc/stdio.o /home/kbeezie/darling/src/libSystem/libc/stdio.cpp:24:10: fatal error: 'bsd/wchar.h' file not found

include <bsd/wchar.h>

     ^

1 error generated. make[2]: * [src/libSystem/CMakeFiles/System.B.dylib.dir/libc/stdio.o] Error 1 make[1]: * [src/libSystem/CMakeFiles/System.B.dylib.dir/all] Error 2 make: *\ [all] Error 2

LubosD commented 11 years ago

You need to install libbsd-dev.

kbeezie commented 11 years ago

It's already listed as installed

i libbsd-dev - utility functions from BSD systems - development files

LubosD commented 11 years ago

Darling is tested against libbsd 0.6.0. What version is yours?

kbeezie commented 11 years ago

$ aptitude show libbsd-dev Package: libbsd-dev
State: installed Automatically installed: no Version: 0.4.2-1ubuntu1 Priority: optional Section: libdevel Maintainer: Ubuntu Developers ubuntu-devel-discuss@lists.ubuntu.com Architecture: amd64 Uncompressed Size: 377 k Depends: libbsd0 (= 0.4.2-1ubuntu1) Replaces: libfreebsd-dev (< 0.0-8) Description: utility functions from BSD systems - development files This library provides some functions commonly available on BSD systems but not on others like GNU systems.

Though I was going by the "easy" ubuntu install listed on http://darling.dolezel.info/en/Build

And I did install libbsd-dev (version was not specified on list of requirements), this is also the latest version of ubuntu.

LubosD commented 11 years ago

It is easy, but as I don't use Ubuntu, it's hard for me to find out that something breaks. This breakage, for example, is from yesterday.

Do a git pull and try again.

kbeezie commented 11 years ago

I wasn't arguing easy or not was just informing you of which steps I was taking to install.

Will try a git pull and try again. If libbsd-dev 0.6+ is required do you know of an appropriate place to get it, if the repository with the latest version of ubuntu is outdated?

LubosD commented 11 years ago

libbsd 0.6+ is not needed anymore. If it detects that you don't have bsd/wchar.h, it will omit one function definition, but it's not a critical function.

kbeezie commented 11 years ago

Still fails I've placed the output into pastebin here: http://pastebin.com/TH0jLEEy

LubosD commented 11 years ago

Alright, try it again, please :-)

kbeezie commented 11 years ago

Sooooo close... errors at 97% (looks libAV related)

http://pastebin.com/Jzcvi0A6

for information purposes, the version of libavcodec-dev installed is Version: 6:0.8.6-1ubuntu2

LubosD commented 11 years ago

Oh dear, that version means it's libav. I've only tried it with ffmpeg. This is gonna take a while to figure out.

In the meanwhile, you can edit toplevel CMakeLists.txt and comment out the Audio* frameworks (add_subdirectory(...)), they aren't working yet anyway.

kbeezie commented 11 years ago

It'll fail if I comment out AudioUnit, but If only comment out the AudioToolbox one, I'm able to build to 100%

Now I just have to test it on an app (main goal was the hope of getting something like Coda to work).

kbeezie commented 11 years ago

Out of curiosity, has the project gotten to the point yet to resolve something like this?

dyld: Cannot execute binary file: dyld: Library not loaded: /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration

Been searching over the project status and such didn't see anything in particular, and doesn't seem like I missed installing any dependencies.

LubosD commented 11 years ago

SystemConfiguration isn't implemented yet, although it looks like one of the easier frameworks.

I've updated Darling to compile with libav 9.8 (latest version) and I've added a tool called dyldd. You can use dyldd to list all the required frameworks, because the chances are that SystemConfiguration isn't the only missing one in your case.

kbeezie commented 11 years ago

Interesting, I'll rebuild later today and give it a shot. I wasn't familiar with where the project was since I wasn't even able to run calculator.app for example (which I guess relies on a speech framework).

ubuntuaddicted commented 10 years ago

is there a way to find out if a certain os x application would possibly work or not with your software? i'm considering buying http://www.hdpvrcapture.com/wordpress/?page_id=276 to easily capture from my HD PVR but they only provide it for OS X. I suppose I just have to compile and install darling and try it myself. :)

LubosD commented 8 years ago

Darling now has Continuous Integration which checks if build works against Debian Stable. Ubuntu should work just fine as well.