The sqlite loadable extension interface uses libdl, so it is now
omitted from the sqlite3 library and zpm-shell. The -ldl linker
option isn't needed, and -static is.
There is also a commented out CC to use musl as the C library. Glibc
doesn't actually support static linking, as it uses libdl for
various name service switch libraries. The package system doesn't
need to do that, and static linking the binaries reduces dependencies
and eliminates library issues which could make the system unusable.
+CC=clang
+#CC=/usr/musl/bin/musl-gcc
CFLAGS=-Wall -W -Wextra -Werror -Wno-implicit-fallthrough -std=c99 -Ilib -Isqlite -Ielf -I. -Ilzma/api
ZPMVER:=$(shell git describe --tags --match 'v[0-9]*' | sed -e 's/^v//' | sed -e 's/-g.\+//' | sed -e 's/-/./g')
LZMAFLAGS=-Ilzma/api -Ilzma/tuklib -Ilzma/lzma -Ilzma/common -Ilzma/check -Ilzma/lz -Ilzma/rangecoder -Ilzma/simple -Ilzma/delta -DHAVE_CHECK_CRC64 -DHAVE_CHECK_CRC32 -DHAVE_ENCODER_LZMA2 -DHAVE_DECODER_LZMA2 -DHAVE_MF_BT4
CFLAGS=-Wall -W -Wextra -Werror -Wno-implicit-fallthrough -std=c99 -Ilib -Isqlite -Ielf -I. -Ilzma/api
ZPMVER:=$(shell git describe --tags --match 'v[0-9]*' | sed -e 's/^v//' | sed -e 's/-g.\+//' | sed -e 's/-/./g')
LZMAFLAGS=-Ilzma/api -Ilzma/tuklib -Ilzma/lzma -Ilzma/common -Ilzma/check -Ilzma/lz -Ilzma/rangecoder -Ilzma/simple -Ilzma/delta -DHAVE_CHECK_CRC64 -DHAVE_CHECK_CRC32 -DHAVE_ENCODER_LZMA2 -DHAVE_DECODER_LZMA2 -DHAVE_MF_BT4
LZMACHECKSRC=lzma/check/check.c lzma/check/crc32_fast.c lzma/check/crc64_fast.c lzma/check/crc32_table.c lzma/check/crc64_table.c
LZMASRC=$(shell ls lzma/lzma/*.c lzma/common/*.c lzma/lz/*.c) $(LZMACHECKSRC) lzma/rangecoder/price_table.c
LZMACHECKSRC=lzma/check/check.c lzma/check/crc32_fast.c lzma/check/crc64_fast.c lzma/check/crc32_table.c lzma/check/crc64_table.c
LZMASRC=$(shell ls lzma/lzma/*.c lzma/common/*.c lzma/lz/*.c) $(LZMACHECKSRC) lzma/rangecoder/price_table.c
PROGRAMS=$(SCRIPTS) $(COMPILED)
def: programs
PROGRAMS=$(SCRIPTS) $(COMPILED)
def: programs
d:
printf '%s\n' $(LZMAOBJ)
printf '%s\n' $(PATH)
d:
printf '%s\n' $(LZMAOBJ)
printf '%s\n' $(PATH)
zpm-runscript: zpm-runscript.o libzpm.a
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -lzpm -lelf
zpm-runscript: zpm-runscript.o libzpm.a
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -lzpm -lelf
-zpm-foreach-path.o: CFLAGS+=-Wno-unused
+zpm-foreach-path.o: CFLAGS+=-Wno-unused-parameter
zpm-foreach-path: zpm-foreach-path.o libzpm.a sqlite/sqlite3.h
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -lzpm -lelf
zpm-foreach-path: zpm-foreach-path.o libzpm.a sqlite/sqlite3.h
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -lzpm -lelf
zpm-findpkg: zpm-findpkg.o libzpm.a
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -lzpm -lelf
zpm-findpkg: zpm-findpkg.o libzpm.a
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -lzpm -lelf
-zpm-syncfs: zpm-syncfs.o libzpm.a
- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -lzpm -lelf -lm
+zpm-syncfs: zpm-syncfs.o libzpm.a libelf.a
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -lzpm -lelf -lm -ldl
zpm-parse: zpm-parse.o libzpm.a
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -lzpm -lelf
zpm-parse: zpm-parse.o libzpm.a
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< -lzpm -lelf
$(CC) -Wall -std=c99 -Ilib -D_HAVE_SQLITE_CONFIG_H=1 -c -o $@ $<
sqlite/shell.o: sqlite/shell.c sqlite/config.h
$(CC) -Wall -std=c99 -Ilib -D_HAVE_SQLITE_CONFIG_H=1 -c -o $@ $<
sqlite/shell.o: sqlite/shell.c sqlite/config.h
- $(CC) -Wall -std=c99 -Ilib -D_POSIX_C_SOURCE=200112L -D_HAVE_SQLITE_CONFIG_H=1 -c -o $@ $<
+ $(CC) -Wall -std=c99 -Ilib \
+ -DSQLITE_OMIT_LOAD_EXTENSION=1 \
+ -D_POSIX_C_SOURCE=200112L -c -o $@ $<
#define SQLITE_THREADSAFE 0
#define SQLITE_MAX_EXPR_DEPTH 0
#define SQLITE_OMIT_DEPRECATED 0
#define SQLITE_THREADSAFE 0
#define SQLITE_MAX_EXPR_DEPTH 0
#define SQLITE_OMIT_DEPRECATED 0
+#define SQLITE_OMIT_LOAD_EXTENSION 1
#define HAVE_ISNAN 1
#define SQLITE_DEFAULT_FOREIGN_KEYS 1
#define HAVE_ISNAN 1
#define SQLITE_DEFAULT_FOREIGN_KEYS 1
- struct timespec times[2] = { 0 };
+ struct timespec times[2] = { {0}, {0} };
double mtime = strtod(COL("mtime"),NULL);
times[0].tv_nsec = UTIME_OMIT;
double mtime = strtod(COL("mtime"),NULL);
times[0].tv_nsec = UTIME_OMIT;