Skip to content

Undefined symbols on macOS during static build #618

Closed
@nobe4

Description

@nobe4

Howdy,
First of, thanks for this work 💌

I'm trying to statically build a binary but it seems that I'm missing a lot of symbols. Googling/installing potential missing packages didn't fix anything. I looked at many different repositories (basically this) but couldn't find anything up-to date or that fixed my issue.

Setup

  • macOS 10.15.5 (19F101)
  • go version go1.13.5 darwin/amd64
  • git2go tags/v30.0.3
  • libgit2 tags/v1.0.0

For non-static tests I use libgit2 v1.0.0 installed this way:

$ brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/1f92e1cfa2faac4159db3029d6dd4dc3874cc9cd/Formula/libgit2.rb

Code

// main.go
package main

import git "github.com/libgit2/git2go/v30"

func main() {
	if _, err := git.OpenRepository("."); err != nil {
		panic(err)
	}
}
# makefile
LIBGIT_STATIC=$(shell echo "$$GOPATH/src/github.com/libgit2/git2go/static-build/build")

dynamic:
	go build main.go

static:
	PKG_CONFIG_PATH=${LIBGIT_STATIC} \
		go build \
			-installsuffix cgo \
			-ldflags '-extldflags "-static"' main.go
// go.mod
module example.com/a/b

go 1.13

require github.com/libgit2/git2go/v30 v30.0.3

Results for dynamic

With libgit2 installed via brew, results are as expected:

$ make dynamic && ./main
go build main.go
panic: could not find repository from '.'
$ git init && ./main
// no output

Without libgit2 installed, dynamic building fails as expected:

$ ./main
dyld: Library not loaded: /usr/local/opt/libgit2/lib/libgit2.1.0.dylib
  Referenced from: /private/tmp/git2gotest/./main
  Reason: image not found
zsh: abort      ./main

Results for static

Preparation, as explained in here:

$ go get -d github.com/libgit2/git2go
$ cd $GOPATH/src/github.com/libgit2/git2go/
$ git checkout v30.0.3
$ make install-static

There are a few tests failed and some missing elements, but since the build was not aborted, I assumed it was not problematic.

output
./script/build-libgit2-static.sh
-- The C compiler identification is AppleClang 11.0.3.11030032
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Found PkgConfig: /usr/local/bin/pkg-config (found version "0.29.2")
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Performing Test HAVE_STRUCT_STAT_ST_MTIM
-- Performing Test HAVE_STRUCT_STAT_ST_MTIM - Failed
-- Performing Test HAVE_STRUCT_STAT_ST_MTIMESPEC
-- Performing Test HAVE_STRUCT_STAT_ST_MTIMESPEC - Success
-- Performing Test HAVE_STRUCT_STAT_MTIME_NSEC
-- Performing Test HAVE_STRUCT_STAT_MTIME_NSEC - Failed
-- Performing Test HAVE_STRUCT_STAT_NSEC
-- Performing Test HAVE_STRUCT_STAT_NSEC - Success
-- Performing Test IS_WALL_SUPPORTED
-- Performing Test IS_WALL_SUPPORTED - Success
-- Performing Test IS_WEXTRA_SUPPORTED
-- Performing Test IS_WEXTRA_SUPPORTED - Success
-- Performing Test IS_WDOCUMENTATION_SUPPORTED
-- Performing Test IS_WDOCUMENTATION_SUPPORTED - Success
-- Performing Test IS_WNO_MISSING_FIELD_INITIALIZERS_SUPPORTED
-- Performing Test IS_WNO_MISSING_FIELD_INITIALIZERS_SUPPORTED - Success
-- Performing Test IS_WSTRICT_ALIASING_SUPPORTED
-- Performing Test IS_WSTRICT_ALIASING_SUPPORTED - Success
-- Performing Test IS_WSTRICT_PROTOTYPES_SUPPORTED
-- Performing Test IS_WSTRICT_PROTOTYPES_SUPPORTED - Success
-- Performing Test IS_WDECLARATION_AFTER_STATEMENT_SUPPORTED
-- Performing Test IS_WDECLARATION_AFTER_STATEMENT_SUPPORTED - Success
-- Performing Test IS_WSHIFT_COUNT_OVERFLOW_SUPPORTED
-- Performing Test IS_WSHIFT_COUNT_OVERFLOW_SUPPORTED - Success
-- Performing Test IS_WUNUSED_CONST_VARIABLE_SUPPORTED
-- Performing Test IS_WUNUSED_CONST_VARIABLE_SUPPORTED - Success
-- Performing Test IS_WUNUSED_FUNCTION_SUPPORTED
-- Performing Test IS_WUNUSED_FUNCTION_SUPPORTED - Success
-- Performing Test IS_WINT_CONVERSION_SUPPORTED
-- Performing Test IS_WINT_CONVERSION_SUPPORTED - Success
-- Performing Test IS_WFORMAT_SUPPORTED
-- Performing Test IS_WFORMAT_SUPPORTED - Success
-- Performing Test IS_WFORMAT_SECURITY_SUPPORTED
-- Performing Test IS_WFORMAT_SECURITY_SUPPORTED - Success
-- Performing Test IS_WNO_DOCUMENTATION_DEPRECATED_SYNC_SUPPORTED
-- Performing Test IS_WNO_DOCUMENTATION_DEPRECATED_SYNC_SUPPORTED - Success
-- Looking for futimens
-- Looking for futimens - found
-- Checking prototype qsort_r for HAVE_QSORT_R_BSD - True
-- Checking prototype qsort_r for HAVE_QSORT_R_GNU - False
-- Looking for qsort_s
-- Looking for qsort_s - not found
-- Looking for clock_gettime in rt
-- Looking for clock_gettime in rt - not found
-- Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_INCLUDE_DIR)
-- Found Security /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Security.framework
-- Looking for SSLCreateContext in /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Security.framework
-- Looking for SSLCreateContext in /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Security.framework - found
-- Found CoreFoundation /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/CoreFoundation.framework
-- Found PCRE: /usr/local/lib/libpcre.dylib
-- Looking for dirent.h
-- Looking for dirent.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for inttypes.h
-- Looking for inttypes.h - found
-- Looking for sys/stat.h
-- Looking for sys/stat.h - found
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for unistd.h
-- Looking for unistd.h - found
-- Looking for windows.h
-- Looking for windows.h - not found
-- Looking for bcopy
-- Looking for bcopy - found
-- Looking for memmove
-- Looking for memmove - found
-- Looking for strerror
-- Looking for strerror - found
-- Looking for strtoll
-- Looking for strtoll - found
-- Looking for strtoq
-- Looking for strtoq - found
-- Looking for _strtoi64
-- Looking for _strtoi64 - not found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of long long
-- Check size of long long - done
-- Check size of unsigned long long
-- Check size of unsigned long long - done
-- Performing Test IS_WNO_UNUSED_FUNCTION_SUPPORTED
-- Performing Test IS_WNO_UNUSED_FUNCTION_SUPPORTED - Success
-- Performing Test IS_WNO_IMPLICIT_FALLTHROUGH_SUPPORTED
-- Performing Test IS_WNO_IMPLICIT_FALLTHROUGH_SUPPORTED - Success
-- http-parser version 2 was not found or disabled; using bundled 3rd-party sources.
-- Performing Test IS_WIMPLICIT_FALLTHROUGH_1_SUPPORTED
-- Performing Test IS_WIMPLICIT_FALLTHROUGH_1_SUPPORTED - Failed
-- Found ZLIB: /usr/lib/libz.dylib (found version "1.2.11")
-- Checking for module 'libssh2'
--   Package 'libssl', required by 'libssh2', not found
-- LIBSSH2 not found. Set CMAKE_PREFIX_PATH if it is installed outside of the default search path.
-- Checking for module 'heimdal-gssapi'
--   No package 'heimdal-gssapi' found
-- Could NOT find GSSAPI (missing: GSSAPI_LIBRARIES)
-- Found GSS.framework /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/GSS.framework
-- Looking for iconv_open
-- Looking for iconv_open - not found
-- Found Iconv: -L/usr/lib -liconv
-- Enabled features:
 * nanoseconds, whether to use sub-second file mtimes and ctimes
 * tracing, tracing support
 * threadsafe, threadsafe support
 * HTTPS, using SecureTransport
 * SHA, using CollisionDetection
 * regex, using bundled PCRE
 * http-parser, http-parser support (bundled)
 * zlib, using system zlib
 * ntlmclient, NTLM authentication support for Unix
 * iconv, iconv encoding conversion support

-- Disabled features:
 * debugpool, debug pool allocator
 * SSH, SSH transport support
 * SPNEGO, SPNEGO authentication support

-- Configuring done
-- Generating done
CMake Warning:
  Manually-specified variables were not used by the project:

    INCLUDE_INSTALL_DIR
    LIB_INSTALL_DIR


-- Build files have been written to: /Users/n/go/src/github.com/libgit2/git2go/static-build/build
Scanning dependencies of target git2internal
[  1%] Building C object src/CMakeFiles/git2internal.dir/alloc.c.o
[  1%] Building C object src/CMakeFiles/git2internal.dir/allocators/stdalloc.c.o
[  2%] Building C object src/CMakeFiles/git2internal.dir/allocators/win32_crtdbg.c.o
[  2%] Building C object src/CMakeFiles/git2internal.dir/annotated_commit.c.o
[  3%] Building C object src/CMakeFiles/git2internal.dir/apply.c.o
[  3%] Building C object src/CMakeFiles/git2internal.dir/attr.c.o
[  4%] Building C object src/CMakeFiles/git2internal.dir/attr_file.c.o
[  4%] Building C object src/CMakeFiles/git2internal.dir/attrcache.c.o
[  5%] Building C object src/CMakeFiles/git2internal.dir/blame.c.o
[  5%] Building C object src/CMakeFiles/git2internal.dir/blame_git.c.o
[  6%] Building C object src/CMakeFiles/git2internal.dir/blob.c.o
[  7%] Building C object src/CMakeFiles/git2internal.dir/branch.c.o
[  7%] Building C object src/CMakeFiles/git2internal.dir/buf_text.c.o
[  8%] Building C object src/CMakeFiles/git2internal.dir/buffer.c.o
[  8%] Building C object src/CMakeFiles/git2internal.dir/cache.c.o
[  9%] Building C object src/CMakeFiles/git2internal.dir/checkout.c.o
[  9%] Building C object src/CMakeFiles/git2internal.dir/cherrypick.c.o
[ 10%] Building C object src/CMakeFiles/git2internal.dir/clone.c.o
[ 10%] Building C object src/CMakeFiles/git2internal.dir/commit.c.o
[ 11%] Building C object src/CMakeFiles/git2internal.dir/commit_list.c.o
[ 11%] Building C object src/CMakeFiles/git2internal.dir/config.c.o
[ 12%] Building C object src/CMakeFiles/git2internal.dir/config_cache.c.o
[ 12%] Building C object src/CMakeFiles/git2internal.dir/config_entries.c.o
[ 13%] Building C object src/CMakeFiles/git2internal.dir/config_file.c.o
[ 14%] Building C object src/CMakeFiles/git2internal.dir/config_mem.c.o
[ 14%] Building C object src/CMakeFiles/git2internal.dir/config_parse.c.o
[ 15%] Building C object src/CMakeFiles/git2internal.dir/config_snapshot.c.o
[ 15%] Building C object src/CMakeFiles/git2internal.dir/crlf.c.o
[ 16%] Building C object src/CMakeFiles/git2internal.dir/date.c.o
[ 16%] Building C object src/CMakeFiles/git2internal.dir/delta.c.o
[ 17%] Building C object src/CMakeFiles/git2internal.dir/describe.c.o
[ 17%] Building C object src/CMakeFiles/git2internal.dir/diff.c.o
[ 18%] Building C object src/CMakeFiles/git2internal.dir/diff_driver.c.o
[ 18%] Building C object src/CMakeFiles/git2internal.dir/diff_file.c.o
[ 19%] Building C object src/CMakeFiles/git2internal.dir/diff_generate.c.o
[ 20%] Building C object src/CMakeFiles/git2internal.dir/diff_parse.c.o
[ 20%] Building C object src/CMakeFiles/git2internal.dir/diff_print.c.o
[ 21%] Building C object src/CMakeFiles/git2internal.dir/diff_stats.c.o
[ 21%] Building C object src/CMakeFiles/git2internal.dir/diff_tform.c.o
[ 22%] Building C object src/CMakeFiles/git2internal.dir/diff_xdiff.c.o
[ 22%] Building C object src/CMakeFiles/git2internal.dir/errors.c.o
[ 23%] Building C object src/CMakeFiles/git2internal.dir/fetch.c.o
[ 23%] Building C object src/CMakeFiles/git2internal.dir/fetchhead.c.o
[ 24%] Building C object src/CMakeFiles/git2internal.dir/filebuf.c.o
[ 24%] Building C object src/CMakeFiles/git2internal.dir/filter.c.o
[ 25%] Building C object src/CMakeFiles/git2internal.dir/futils.c.o
[ 25%] Building C object src/CMakeFiles/git2internal.dir/global.c.o
[ 26%] Building C object src/CMakeFiles/git2internal.dir/graph.c.o
[ 27%] Building C object src/CMakeFiles/git2internal.dir/hash.c.o
[ 27%] Building C object src/CMakeFiles/git2internal.dir/hashsig.c.o
[ 28%] Building C object src/CMakeFiles/git2internal.dir/ident.c.o
[ 28%] Building C object src/CMakeFiles/git2internal.dir/idxmap.c.o
[ 29%] Building C object src/CMakeFiles/git2internal.dir/ignore.c.o
[ 29%] Building C object src/CMakeFiles/git2internal.dir/index.c.o
[ 30%] Building C object src/CMakeFiles/git2internal.dir/indexer.c.o
[ 30%] Building C object src/CMakeFiles/git2internal.dir/iterator.c.o
[ 31%] Building C object src/CMakeFiles/git2internal.dir/mailmap.c.o
[ 31%] Building C object src/CMakeFiles/git2internal.dir/merge.c.o
[ 32%] Building C object src/CMakeFiles/git2internal.dir/merge_driver.c.o
[ 32%] Building C object src/CMakeFiles/git2internal.dir/merge_file.c.o
[ 33%] Building C object src/CMakeFiles/git2internal.dir/message.c.o
[ 34%] Building C object src/CMakeFiles/git2internal.dir/mwindow.c.o
[ 34%] Building C object src/CMakeFiles/git2internal.dir/net.c.o
[ 35%] Building C object src/CMakeFiles/git2internal.dir/netops.c.o
[ 35%] Building C object src/CMakeFiles/git2internal.dir/notes.c.o
[ 36%] Building C object src/CMakeFiles/git2internal.dir/object.c.o
[ 36%] Building C object src/CMakeFiles/git2internal.dir/object_api.c.o
[ 37%] Building C object src/CMakeFiles/git2internal.dir/odb.c.o
[ 37%] Building C object src/CMakeFiles/git2internal.dir/odb_loose.c.o
[ 38%] Building C object src/CMakeFiles/git2internal.dir/odb_mempack.c.o
[ 38%] Building C object src/CMakeFiles/git2internal.dir/odb_pack.c.o
[ 39%] Building C object src/CMakeFiles/git2internal.dir/offmap.c.o
[ 40%] Building C object src/CMakeFiles/git2internal.dir/oid.c.o
[ 40%] Building C object src/CMakeFiles/git2internal.dir/oidarray.c.o
[ 41%] Building C object src/CMakeFiles/git2internal.dir/oidmap.c.o
[ 41%] Building C object src/CMakeFiles/git2internal.dir/pack-objects.c.o
[ 42%] Building C object src/CMakeFiles/git2internal.dir/pack.c.o
[ 42%] Building C object src/CMakeFiles/git2internal.dir/parse.c.o
[ 43%] Building C object src/CMakeFiles/git2internal.dir/patch.c.o
[ 43%] Building C object src/CMakeFiles/git2internal.dir/patch_generate.c.o
[ 44%] Building C object src/CMakeFiles/git2internal.dir/patch_parse.c.o
[ 44%] Building C object src/CMakeFiles/git2internal.dir/path.c.o
[ 45%] Building C object src/CMakeFiles/git2internal.dir/pathspec.c.o
[ 45%] Building C object src/CMakeFiles/git2internal.dir/pool.c.o
[ 46%] Building C object src/CMakeFiles/git2internal.dir/posix.c.o
[ 47%] Building C object src/CMakeFiles/git2internal.dir/pqueue.c.o
[ 47%] Building C object src/CMakeFiles/git2internal.dir/proxy.c.o
[ 48%] Building C object src/CMakeFiles/git2internal.dir/push.c.o
[ 48%] Building C object src/CMakeFiles/git2internal.dir/reader.c.o
[ 49%] Building C object src/CMakeFiles/git2internal.dir/rebase.c.o
[ 49%] Building C object src/CMakeFiles/git2internal.dir/refdb.c.o
[ 50%] Building C object src/CMakeFiles/git2internal.dir/refdb_fs.c.o
[ 50%] Building C object src/CMakeFiles/git2internal.dir/reflog.c.o
[ 51%] Building C object src/CMakeFiles/git2internal.dir/refs.c.o
[ 51%] Building C object src/CMakeFiles/git2internal.dir/refspec.c.o
[ 52%] Building C object src/CMakeFiles/git2internal.dir/regexp.c.o
[ 52%] Building C object src/CMakeFiles/git2internal.dir/remote.c.o
[ 53%] Building C object src/CMakeFiles/git2internal.dir/repository.c.o
[ 54%] Building C object src/CMakeFiles/git2internal.dir/reset.c.o
[ 54%] Building C object src/CMakeFiles/git2internal.dir/revert.c.o
[ 55%] Building C object src/CMakeFiles/git2internal.dir/revparse.c.o
[ 55%] Building C object src/CMakeFiles/git2internal.dir/revwalk.c.o
[ 56%] Building C object src/CMakeFiles/git2internal.dir/settings.c.o
[ 56%] Building C object src/CMakeFiles/git2internal.dir/signature.c.o
[ 57%] Building C object src/CMakeFiles/git2internal.dir/sortedcache.c.o
[ 57%] Building C object src/CMakeFiles/git2internal.dir/stash.c.o
[ 58%] Building C object src/CMakeFiles/git2internal.dir/status.c.o
[ 58%] Building C object src/CMakeFiles/git2internal.dir/streams/mbedtls.c.o
[ 59%] Building C object src/CMakeFiles/git2internal.dir/streams/openssl.c.o
[ 60%] Building C object src/CMakeFiles/git2internal.dir/streams/registry.c.o
[ 60%] Building C object src/CMakeFiles/git2internal.dir/streams/socket.c.o
[ 61%] Building C object src/CMakeFiles/git2internal.dir/streams/stransport.c.o
[ 61%] Building C object src/CMakeFiles/git2internal.dir/streams/tls.c.o
[ 62%] Building C object src/CMakeFiles/git2internal.dir/strmap.c.o
[ 62%] Building C object src/CMakeFiles/git2internal.dir/submodule.c.o
[ 63%] Building C object src/CMakeFiles/git2internal.dir/sysdir.c.o
[ 63%] Building C object src/CMakeFiles/git2internal.dir/tag.c.o
[ 64%] Building C object src/CMakeFiles/git2internal.dir/thread-utils.c.o
[ 64%] Building C object src/CMakeFiles/git2internal.dir/trace.c.o
[ 65%] Building C object src/CMakeFiles/git2internal.dir/trailer.c.o
[ 65%] Building C object src/CMakeFiles/git2internal.dir/transaction.c.o
[ 66%] Building C object src/CMakeFiles/git2internal.dir/transport.c.o
[ 67%] Building C object src/CMakeFiles/git2internal.dir/transports/auth.c.o
[ 67%] Building C object src/CMakeFiles/git2internal.dir/transports/auth_negotiate.c.o
[ 68%] Building C object src/CMakeFiles/git2internal.dir/transports/auth_ntlm.c.o
[ 68%] Building C object src/CMakeFiles/git2internal.dir/transports/credential.c.o
[ 69%] Building C object src/CMakeFiles/git2internal.dir/transports/credential_helpers.c.o
[ 69%] Building C object src/CMakeFiles/git2internal.dir/transports/git.c.o
[ 70%] Building C object src/CMakeFiles/git2internal.dir/transports/http.c.o
[ 70%] Building C object src/CMakeFiles/git2internal.dir/transports/httpclient.c.o
[ 71%] Building C object src/CMakeFiles/git2internal.dir/transports/local.c.o
[ 71%] Building C object src/CMakeFiles/git2internal.dir/transports/smart.c.o
[ 72%] Building C object src/CMakeFiles/git2internal.dir/transports/smart_pkt.c.o
[ 72%] Building C object src/CMakeFiles/git2internal.dir/transports/smart_protocol.c.o
[ 73%] Building C object src/CMakeFiles/git2internal.dir/transports/ssh.c.o
[ 74%] Building C object src/CMakeFiles/git2internal.dir/transports/winhttp.c.o
[ 74%] Building C object src/CMakeFiles/git2internal.dir/tree-cache.c.o
[ 75%] Building C object src/CMakeFiles/git2internal.dir/tree.c.o
[ 75%] Building C object src/CMakeFiles/git2internal.dir/tsort.c.o
[ 76%] Building C object src/CMakeFiles/git2internal.dir/util.c.o
[ 76%] Building C object src/CMakeFiles/git2internal.dir/varint.c.o
[ 77%] Building C object src/CMakeFiles/git2internal.dir/vector.c.o
[ 77%] Building C object src/CMakeFiles/git2internal.dir/wildmatch.c.o
[ 78%] Building C object src/CMakeFiles/git2internal.dir/worktree.c.o
[ 78%] Building C object src/CMakeFiles/git2internal.dir/xdiff/xdiffi.c.o
[ 79%] Building C object src/CMakeFiles/git2internal.dir/xdiff/xemit.c.o
[ 80%] Building C object src/CMakeFiles/git2internal.dir/xdiff/xhistogram.c.o
[ 80%] Building C object src/CMakeFiles/git2internal.dir/xdiff/xmerge.c.o
[ 81%] Building C object src/CMakeFiles/git2internal.dir/xdiff/xpatience.c.o
[ 81%] Building C object src/CMakeFiles/git2internal.dir/xdiff/xprepare.c.o
[ 82%] Building C object src/CMakeFiles/git2internal.dir/xdiff/xutils.c.o
[ 82%] Building C object src/CMakeFiles/git2internal.dir/zstream.c.o
[ 83%] Building C object src/CMakeFiles/git2internal.dir/unix/map.c.o
[ 83%] Building C object src/CMakeFiles/git2internal.dir/unix/realpath.c.o
[ 84%] Building C object src/CMakeFiles/git2internal.dir/hash/sha1/collisiondetect.c.o
[ 84%] Building C object src/CMakeFiles/git2internal.dir/hash/sha1/sha1dc/sha1.c.o
[ 85%] Building C object src/CMakeFiles/git2internal.dir/hash/sha1/sha1dc/ubc_check.c.o
[ 85%] Built target git2internal
Scanning dependencies of target ntlmclient
[ 86%] Building C object deps/ntlmclient/CMakeFiles/ntlmclient.dir/ntlm.c.o
[ 87%] Building C object deps/ntlmclient/CMakeFiles/ntlmclient.dir/unicode_builtin.c.o
[ 87%] Building C object deps/ntlmclient/CMakeFiles/ntlmclient.dir/util.c.o
[ 88%] Building C object deps/ntlmclient/CMakeFiles/ntlmclient.dir/crypt_commoncrypto.c.o
[ 88%] Built target ntlmclient
Scanning dependencies of target pcre
[ 88%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_byte_order.c.o
[ 89%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_chartables.c.o
[ 89%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_compile.c.o
[ 90%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_config.c.o
[ 90%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_dfa_exec.c.o
[ 91%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_exec.c.o
[ 91%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_fullinfo.c.o
[ 92%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_get.c.o
[ 92%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_globals.c.o
[ 93%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_jit_compile.c.o
[ 94%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_maketables.c.o
[ 94%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_newline.c.o
[ 95%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_ord2utf8.c.o
[ 95%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_refcount.c.o
[ 96%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_string_utils.c.o
[ 96%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_study.c.o
[ 97%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_tables.c.o
[ 97%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_ucd.c.o
[ 98%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_valid_utf8.c.o
[ 98%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_version.c.o
[ 99%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_xclass.c.o
[100%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcreposix.c.o
[100%] Built target pcre
Scanning dependencies of target http-parser
[100%] Building C object deps/http-parser/CMakeFiles/http-parser.dir/http_parser.c.o
[100%] Built target http-parser
Scanning dependencies of target git2
[100%] Linking C static library ../libgit2.a
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../libgit2.a(pcre_string_utils.c.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../libgit2.a(auth_negotiate.c.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../libgit2.a(winhttp.c.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../libgit2.a(pcre_string_utils.c.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../libgit2.a(auth_negotiate.c.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../libgit2.a(winhttp.c.o) has no symbols
[100%] Built target git2
Install the project...
-- Install configuration: "RelWithDebInfo"
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/lib/pkgconfig/libgit2.pc
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/lib/libgit2.a
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/lib/libgit2.a(pcre_string_utils.c.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/lib/libgit2.a(auth_negotiate.c.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/lib/libgit2.a(winhttp.c.o) has no symbols
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/signature.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/oid.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/index.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/ignore.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/attr.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/blame.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/oidarray.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/pack.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/revert.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/version.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/odb.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/status.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/net.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/tag.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/annotated_commit.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/config.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/branch.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/types.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/repository.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/clone.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/global.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/blob.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/cherrypick.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/mailmap.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/submodule.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/errors.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/message.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/merge.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/pathspec.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/tree.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/odb_backend.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/graph.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/describe.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/rebase.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/worktree.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/stash.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/remote.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/strarray.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/reflog.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/cred_helpers.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/buffer.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/diff.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/sys
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/sys/index.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/sys/config.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/sys/path.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/sys/repository.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/sys/openssl.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/sys/cred.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/sys/merge.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/sys/stream.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/sys/odb_backend.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/sys/reflog.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/sys/diff.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/sys/transport.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/sys/hashsig.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/sys/credential.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/sys/refs.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/sys/filter.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/sys/alloc.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/sys/mempack.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/sys/commit.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/sys/refdb_backend.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/trace.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/common.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/proxy.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/indexer.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/refspec.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/notes.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/cert.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/deprecated.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/transport.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/revwalk.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/patch.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/object.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/checkout.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/apply.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/revparse.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/credential_helpers.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/credential.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/refs.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/reset.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/filter.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/transaction.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/stdint.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/commit.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2/refdb.h
-- Installing: /Users/n/go/src/github.com/libgit2/git2go/static-build/install/include/git2.h
go install --tags "static" ./...
$ make static
PKG_CONFIG_PATH=/Users/n/go/src/github.com/libgit2/git2go/static-build/build \
                go build \
                        -installsuffix cgo \
                        -ldflags '-extldflags "-static"' main.go
# github.com/libgit2/git2go/v30
Undefined symbols for architecture x86_64:
  "_CFDataGetBytePtr", referenced from:
      _stransport_certificate in libgit2.a(stransport.c.o)
... (see below for full output)
output
PKG_CONFIG_PATH=/Users/n/go/src/github.com/libgit2/git2go/static-build/build \
                go build \
                        -installsuffix cgo \
                        -ldflags '-extldflags "-static"' main.go
# github.com/libgit2/git2go/v30
Undefined symbols for architecture x86_64:
  "_CFDataGetBytePtr", referenced from:
      _stransport_certificate in libgit2.a(stransport.c.o)
  "_CFDataGetLength", referenced from:
      _stransport_certificate in libgit2.a(stransport.c.o)
  "_CFRelease", referenced from:
      _stransport_wrap in libgit2.a(stransport.c.o)
      _stransport_connect in libgit2.a(stransport.c.o)
      _stransport_certificate in libgit2.a(stransport.c.o)
      _stransport_read in libgit2.a(stransport.c.o)
      _stransport_write in libgit2.a(stransport.c.o)
      _stransport_close in libgit2.a(stransport.c.o)
      _stransport_free in libgit2.a(stransport.c.o)
      ...
  "_CFStringGetCStringPtr", referenced from:
      _stransport_wrap in libgit2.a(stransport.c.o)
      _stransport_connect in libgit2.a(stransport.c.o)
      _stransport_certificate in libgit2.a(stransport.c.o)
      _stransport_read in libgit2.a(stransport.c.o)
      _stransport_write in libgit2.a(stransport.c.o)
      _stransport_close in libgit2.a(stransport.c.o)
  "_SSLClose", referenced from:
      _stransport_close in libgit2.a(stransport.c.o)
  "_SSLCopyPeerTrust", referenced from:
      _stransport_connect in libgit2.a(stransport.c.o)
      _stransport_certificate in libgit2.a(stransport.c.o)
  "_SSLCreateContext", referenced from:
      _stransport_wrap in libgit2.a(stransport.c.o)
  "_SSLHandshake", referenced from:
      _stransport_connect in libgit2.a(stransport.c.o)
  "_SSLRead", referenced from:
      _stransport_read in libgit2.a(stransport.c.o)
  "_SSLSetConnection", referenced from:
      _stransport_wrap in libgit2.a(stransport.c.o)
  "_SSLSetIOFuncs", referenced from:
      _stransport_wrap in libgit2.a(stransport.c.o)
  "_SSLSetPeerDomainName", referenced from:
      _stransport_wrap in libgit2.a(stransport.c.o)
  "_SSLSetProtocolVersionMax", referenced from:
      _stransport_wrap in libgit2.a(stransport.c.o)
  "_SSLSetProtocolVersionMin", referenced from:
      _stransport_wrap in libgit2.a(stransport.c.o)
  "_SSLSetSessionOption", referenced from:
      _stransport_wrap in libgit2.a(stransport.c.o)
  "_SSLWrite", referenced from:
      _stransport_write in libgit2.a(stransport.c.o)
  "_SecCertificateCopyData", referenced from:
      _stransport_certificate in libgit2.a(stransport.c.o)
  "_SecCopyErrorMessageString", referenced from:
      _stransport_wrap in libgit2.a(stransport.c.o)
      _stransport_connect in libgit2.a(stransport.c.o)
      _stransport_certificate in libgit2.a(stransport.c.o)
      _stransport_read in libgit2.a(stransport.c.o)
      _stransport_write in libgit2.a(stransport.c.o)
      _stransport_close in libgit2.a(stransport.c.o)
  "_SecTrustEvaluate", referenced from:
      _stransport_connect in libgit2.a(stransport.c.o)
  "_SecTrustGetCertificateAtIndex", referenced from:
      _stransport_certificate in libgit2.a(stransport.c.o)
  "_crc32", referenced from:
      _git_indexer_append in libgit2.a(indexer.c.o)
      _git_indexer_commit in libgit2.a(indexer.c.o)
  "_deflate", referenced from:
      _write_deflate in libgit2.a(filebuf.c.o)
      _git_zstream_get_output_chunk in libgit2.a(zstream.c.o)
     (maybe you meant: _git_zstream_deflatebuf)
  "_deflateEnd", referenced from:
      _git_filebuf_cleanup in libgit2.a(filebuf.c.o)
      _git_zstream_free in libgit2.a(zstream.c.o)
      _zstream_buf in libgit2.a(zstream.c.o)
  "_deflateInit_", referenced from:
      _git_filebuf_open_withsize in libgit2.a(filebuf.c.o)
      _git_zstream_init in libgit2.a(zstream.c.o)
  "_deflateReset", referenced from:
      _git_zstream_reset in libgit2.a(zstream.c.o)
  "_iconv", referenced from:
      _git_path_iconv in libgit2.a(path.c.o)
     (maybe you meant: _git_path_iconv_init_precompose, _git_path_iconv , _git_path_iconv_clear )
  "_iconv_close", referenced from:
      _git_path_direach in libgit2.a(path.c.o)
      _git_path_iconv_clear in libgit2.a(path.c.o)
      _git_path_diriter_free in libgit2.a(path.c.o)
      _git_path_dirload in libgit2.a(path.c.o)
  "_iconv_open", referenced from:
      _git_path_direach in libgit2.a(path.c.o)
      _git_path_iconv_init_precompose in libgit2.a(path.c.o)
      _git_path_diriter_init in libgit2.a(path.c.o)
  "_inflate", referenced from:
      _git_zstream_get_output_chunk in libgit2.a(zstream.c.o)
     (maybe you meant: _git_zstream_inflatebuf)
  "_inflateEnd", referenced from:
      _git_zstream_free in libgit2.a(zstream.c.o)
      _zstream_buf in libgit2.a(zstream.c.o)
  "_inflateInit_", referenced from:
      _git_zstream_init in libgit2.a(zstream.c.o)
  "_inflateReset", referenced from:
      _git_zstream_reset in libgit2.a(zstream.c.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [static] Error 2

Do you see anything that can explain why all those symbols are missing?

Thanks,

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions