lbryio / lbrycrd

The blockchain that provides the digital content namespace for the LBRY protocol
https://lbry.com
MIT License
2.57k stars 178 forks source link

build failed on mac #64

Closed chinqi closed 6 years ago

chinqi commented 7 years ago

When I build lbrycrd on mac, there was error like this:

Undefined symbols for architecture x86_64: "memory_cleanse(void, unsigned long)", referenced from: CBlockHeader::GetPoWHash() const in libbitcoinconsensus_la-block.o std::__1::enable_if<(__is_forward_iterator<char const>::value) && (is_constructible<char, std::1::iterator_traits<char const>::reference>::value), std::1::wrap_iter<char> >::type std::1::vector<char, zero_after_free_allocator >::insert<char const>(std::1::wrap_iter<char const>, char const, char const) in libbitcoinconsensus_la-block.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

caseyparker commented 7 years ago

I've got the same issue.

avoloshko commented 7 years ago

any progress?

kauffj commented 7 years ago

Our protocol devs are pretty swamped so it is somewhat unlikely this will become a top issue soon. If anyone is capable or interested to tackle this, we'd be happy to bounty this.

chinqi commented 7 years ago

I think the code fall behind bitcoin core a lot, when I track this error. There was big difference between core code.

hashbender commented 6 years ago

@kauffj I'd really like to see this re-opened. is there anyone that can shed some light on how we might go about fixing it? I build on Mac only, so this is a show-stopper for me

kauffj commented 6 years ago

@nitronick600 it's not closed

asstron0me commented 6 years ago

same issue

lyoshenka commented 6 years ago

Does https://github.com/lbryio/lbrycrd/pull/80 fix this issue?

hashbender commented 6 years ago

@lyoshenka just tried with that change, still fails with the same error.

lyoshenka commented 6 years ago

I'm having trouble reproducing this error. I just ran reproducible_build.sh on Sierra and it built fine. For those having errors, can you provide more info on what version of OSX you're on, how you're building lbrycrd, or anything else that might be useful for us. Thanks.

hashbender commented 6 years ago

I'll try it tonight and let you know.

hashbender commented 6 years ago

@lyoshenka I didn't see the reproducible_build.sh command (it's not mentioned in the osx build instructions).

Here's the output I get from running that

checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... no
checking whether to build static libraries... yes
checking for ld used by g++... /Library/Developer/CommandLineTools/usr/bin/ld
checking if the linker (/Library/Developer/CommandLineTools/usr/bin/ld) is GNU ld... no
checking whether the g++ linker (/Library/Developer/CommandLineTools/usr/bin/ld) supports shared libraries... yes
checking for g++ option to produce PIC... -fno-common -DPIC
checking if g++ PIC flag -fno-common -DPIC works... yes
checking if g++ static flag -static works... no
checking if g++ supports -c -o file.o... yes
checking if g++ supports -c -o file.o... (cached) yes
checking whether the g++ linker (/Library/Developer/CommandLineTools/usr/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... darwin17.3.0 dyld
checking how to hardcode library paths into programs... immediate
checking SOSUFFIX from libtool... .dylib
checking MODSUFFIX from libtool... .so
checking JMODSUFFIX from libtool... .jnilib
checking whether stat file-mode macros are broken... no
checking whether time.h and sys/time.h may both be included... yes
checking for dirent.h that defines DIR... yes
checking for library containing opendir... none required
checking execinfo.h usability... yes
checking execinfo.h presence... yes
checking for execinfo.h... yes
checking sys/select.h usability... yes
checking sys/select.h presence... yes
checking for sys/select.h... yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking for struct stat.st_blksize... yes
checking for inttypes.h... (cached) yes
checking for stdint.h... yes
checking if stdint.h can be used by C++... yes
checking stddef.h usability... yes
checking stddef.h presence... yes
checking for stddef.h... yes
checking for unistd.h... (cached) yes
checking size of char... 1
checking size of unsigned char... 1
checking size of short... 2
checking size of unsigned short... 2
checking size of int... 4
checking size of unsigned int... 4
checking size of long... 8
checking size of unsigned long... 8
checking size of long long... 8
checking size of unsigned long long... 8
checking size of char *... 8
checking for u_char... yes
checking for u_short... yes
checking for u_int... yes
checking for u_long... yes
checking for u_int8_t... yes
checking for u_int16_t... yes
checking for int16_t... yes
checking for u_int32_t... yes
checking for int32_t... yes
checking for u_int64_t... yes
checking for int64_t... yes
checking for FILE *... yes
checking for off_t... yes
checking for pid_t... yes
checking for size_t... yes
checking for time_t... yes
checking size of size_t... 8
checking for ssize_t... yes
checking for uintmax_t... yes
checking for uintptr_t... yes
checking for socklen_t... yes
checking for ANSI C exit success/failure values... yes
checking for getopt optreset variable... yes
checking for mutexes... POSIX/pthreads/library/x86_64/gcc-assembly
checking pthread.h usability... yes
checking pthread.h presence... yes
checking for pthread.h... yes
checking for main in -lpthread... yes
checking for atomic operations... x86/gcc-assembly
checking for library containing sched_yield... none required
checking for library containing fdatasync... none required
checking for library containing getaddrinfo... none required
checking for library containing hstrerror... none required
checking for main in -lm... yes
checking for main in -lnsl... no
checking for main in -lsocket... no
checking for abort... yes
checking for atoi... yes
checking for atol... yes
checking for getcwd... yes
checking for getenv... yes
checking for getopt... yes
checking for isalpha... yes
checking for isdigit... yes
checking for isprint... yes
checking for isspace... yes
checking for memcmp... yes
checking for memcpy... yes
checking for memmove... yes
checking for printf... yes
checking for qsort... yes
checking for raise... yes
checking for rand... yes
checking for strcasecmp... yes
checking for strcat... yes
checking for strchr... yes
checking for strdup... yes
checking for strerror... yes
checking for strncat... yes
checking for strncmp... yes
checking for strrchr... yes
checking for strsep... yes
checking for strtol... yes
checking for strtoul... yes
checking for _fstati64... no
checking for backtrace... yes
checking for backtrace_symbols... yes
checking for directio... no
checking for fchmod... yes
checking for fclose... yes
checking for fcntl... yes
checking for fdatasync... yes
checking for fgetc... yes
checking for fgets... yes
checking for fopen... yes
checking for fwrite... yes
checking for getgid... yes
checking for getrusage... yes
checking for getuid... yes
checking for hstrerror... yes
checking for mprotect... yes
checking for pstat_getdynamic... no
checking for pthread_self... yes
checking for pthread_yield... no
checking for random... yes
checking for sched_yield... yes
checking for select... yes
checking for setgid... yes
checking for setuid... yes
checking for sigaction... yes
checking for snprintf... yes
checking for stat... yes
checking for sysconf... yes
checking for vsnprintf... yes
checking for yield... no
checking for gettimeofday... yes
checking for localtime... yes
checking for time... yes
checking for strftime... yes
checking for clock_gettime... yes
checking for clock_gettime monotonic clock... yes
checking for ctime_r... yes
checking for 2 or 3 argument version of ctime_r... 2-argument
checking for ftruncate... yes
checking for pread... yes
checking for pwrite... yes
checking for getaddrinfo... yes
checking for fcntl/F_SETFD... yes
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking for mlock... yes
checking for munlock... yes
checking for mmap... yes
checking for munmap... yes
checking for shmget... yes
checking for shmctl... no
checking for 64-bit integral type support for sequences... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating db_cxx.h
config.status: creating db_int.h
config.status: creating clib_port.h
config.status: creating include.tcl
config.status: creating db.h
config.status: creating db_config.h
config.status: executing libtool commands
./libtool --mode=compile cc -c -I. -I../dist/..  -O3  ../dist/../mutex/mut_tas.c

Build failed. Removing /Users/nickh/code/C/lbrycrd/build/bdb
lyoshenka commented 6 years ago

@nitronick600 what version of OSX are you on?

alyssaoc commented 6 years ago

completed in pull request #173