mirror of
				https://git.proxmox.com/git/libgit2
				synced 2025-11-04 07:09:14 +00:00 
			
		
		
		
	Because of the fact that pkg-config is pants-on-head retarded and that the Linux linker *requires* a static library to come before all its dynamic dependencies in the link path, calling `pkg-config --libs --static` was generating the wrong flags for linking. Before this patch: -Wl,-Bsymbolic-functions -Wl,-z,relro -L/usr/local/lib -lcurl -lssh2 -lrt -lgit2 -lssl -lcrypto -ldl -lz After this patch: -Wl,-Bsymbolic-functions -Wl,-z,relro -L/usr/local/lib -lgit2 -lcurl -lssh2 -lrt -lssl -lcrypto -ldl -lz By setting the "Libs" line before all other rules, we make sure that `-lgit2` is the first library in the link path and that it gets its symbols resolved with the libraries coming after it. This fix (ab)uses an implementation detail in `pkg-config` (namely, that flags are output as they are found on the file), but this detail seems to be stable between releases and always gives a stable output.
		
			
				
	
	
		
			13 lines
		
	
	
		
			313 B
		
	
	
	
		
			PkgConfig
		
	
	
	
	
	
			
		
		
	
	
			13 lines
		
	
	
		
			313 B
		
	
	
	
		
			PkgConfig
		
	
	
	
	
	
libdir=@CMAKE_INSTALL_PREFIX@/@LIB_INSTALL_DIR@
 | 
						|
includedir=@CMAKE_INSTALL_PREFIX@/@INCLUDE_INSTALL_DIR@
 | 
						|
 | 
						|
Name: libgit2
 | 
						|
Description: The git library, take 2
 | 
						|
Version: @LIBGIT2_VERSION_STRING@
 | 
						|
 | 
						|
Libs: -L${libdir} -lgit2
 | 
						|
Libs.private: @LIBGIT2_PC_LIBS@
 | 
						|
Requires.private: @LIBGIT2_PC_REQUIRES@
 | 
						|
 | 
						|
Cflags: -I${includedir}
 |