Skip to content

extra builder #37

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 20 commits into from
Jun 11, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions extra/pg_ivm.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#!/bin/bash

. wasm-build/extension.sh

pushd $PG_EXTRA
if [ -d pg_ivm ]
then
echo using local pgpg_ivm
else
wget https://github.com/sraoss/pg_ivm/archive/refs/tags/v1.11.tar.gz -O-|tar xfz -
mv pg_ivm-* pg_ivm

# git clone --recursive --no-tags --depth 1 --single-branch --branch main https://github.com/sraoss/pg_ivm

if $WASI
then
echo "no patching"
else
echo "PATCH?"

fi

fi
popd

pushd $PG_EXTRA/pg_ivm
# path for wasm-shared already set to (pwd:pg build dir)/bin
# OPTFLAGS="" turns off arch optim (sse/neon).
PG_CONFIG=${PGROOT}/bin/pg_config emmake make OPTFLAGS="" install || exit 19

#cp sql/pg_ivm--1.10.sql ${PGROOT}/share/postgresql/extension/
#rm -f ${PGROOT}/share/postgresql/extension/pg_ivm--?.?.?--?.?.?.sql ${PGROOT}/share/postgresql/extension/pg_ivm.sql

popd


29 changes: 8 additions & 21 deletions extra/vector.sh
Original file line number Diff line number Diff line change
@@ -1,40 +1,27 @@
#!/bin/bash

mkdir -p build src
. wasm-build/extension.sh

pushd build
pushd $PG_EXTRA
# [ -d pgvector ] || git clone --no-tags --depth 1 --single-branch --branch master https://github.com/pgvector/pgvector

if [ -d vector ]
then
echo using local pgvector
else
[ -f ../src/pgvector.tar.gz ] || wget -c -q https://github.com/pgvector/pgvector/archive/refs/tags/v0.8.0.tar.gz -O../src/pgvector.tar.gz
tar xvfz ../src/pgvector.tar.gz
wget -c -q https://github.com/pgvector/pgvector/archive/refs/tags/v0.8.0.tar.gz -Opgvector.tar.gz
tar xvfz pgvector.tar.gz
mv pgvector-?.?.? vector
fi
popd



if which emcc
then
echo -n
else
reset;
. /opt/python-wasm-sdk/wasm32-bi-emscripten-shell.sh
export PGROOT=${PGROOT:-/tmp/pglite}
export PATH=${PGROOT}/bin:$PATH
fi


pushd build/vector
pushd $PG_EXTRA/vector
# path for wasm-shared already set to (pwd:pg build dir)/bin
# OPTFLAGS="" turns off arch optim (sse/neon).
PG_CONFIG=${PGROOT}/bin/pg_config emmake make OPTFLAGS="" install || exit 33
PG_CONFIG=${PGROOT}/bin/pg_config emmake make OPTFLAGS="" install || exit 21

cp sql/vector.sql sql/vector--0.8.0.sql ${PGROOT}/share/postgresql/extension/
rm ${PGROOT}/share/postgresql/extension/vector--?.?.?--?.?.?.sql ${PGROOT}/share/postgresql/extension/vector.sql
cp sql/vector--0.8.0.sql ${PGROOT}/share/postgresql/extension/
rm ${PGROOT}/share/postgresql/extension/vector--?.?.?--?.?.?.sql
popd


71 changes: 56 additions & 15 deletions pglite-REL_17_4_WASM/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -163,8 +163,9 @@ else


EXPORTED_FUNCTIONS="_main,_use_wire,_pgl_initdb,_pgl_backend,_pgl_shutdown,_interactive_write,_interactive_read,_interactive_one"
EXPORTED_FUNCTIONS="$EXPORTED_FUNCTIONS,_get_channel,_get_buffer_size,_get_buffer_addr"

EXPORTED_RUNTIME_METHODS="MEMFS,IDBFS,FS,FS_mount,FS_syncfs,FS_analyzePath,setValue,getValue,UTF8ToString,stringToNewUTF8,stringToUTF8OnStack"
# EXPORTED_RUNTIME_METHODS="MEMFS,IDBFS,FS,FS_mount,FS_syncfs,FS_analyzePath,setValue,getValue,UTF8ToString,stringToNewUTF8,stringToUTF8OnStack"
EXPORTED_RUNTIME_METHODS="MEMFS,IDBFS,FS,setValue,getValue,UTF8ToString,stringToNewUTF8,stringToUTF8OnStack"


Expand All @@ -173,13 +174,20 @@ else
then
# FULL
LINKER="-sMAIN_MODULE=1 -sEXPORTED_FUNCTIONS=${EXPORTED_FUNCTIONS}"
unset EMCC_FORCE_STDLIBS
# LINKER="-sMAIN_MODULE=2 -sEXPORTED_FUNCTIONS=@${PGL_DIST_LINK}/exports/pglite"
else
# min
# LINKER="-sMAIN_MODULE=2"


# LINKER="-sMAIN_MODULE=1 -sEXPORTED_FUNCTIONS=${EXPORTED_FUNCTIONS}"
# LINKER="-sMAIN_MODULE=1 -sEXPORTED_FUNCTIONS=@${PGL_DIST_LINK}/exports/pglite"

# tailored
LINKER="-sMAIN_MODULE=2 -sEXPORTED_FUNCTIONS=@exports"
LINKER="-sMAIN_MODULE=1 -sEXPORTED_FUNCTIONS=${EXPORTED_FUNCTIONS}"
LINKER="-sMAIN_MODULE=2 -sEXPORTED_FUNCTIONS=@${PGL_DIST_LINK}/exports/pglite"
export EMCC_FORCE_STDLIBS=1

fi

echo "
Expand Down Expand Up @@ -231,39 +239,72 @@ ________________________________________________________
if ${CC} ${CC_PGLITE} ${PGINC} -o ${BUILD_PATH}/pglite.o -c ${WORKSPACE}/pglite-${PG_BRANCH}/pg_main.c \
-Wno-incompatible-pointer-types-discards-qualifiers
then
echo " * linking node raw version of pglite ${PG_BRANCH}"
echo " * linking node raw version of pglite ${PG_BRANCH} (with all symbols)"

COPTS="$LOPTS" ${CC} ${CC_PGLITE} ${PGINC} -o ${PGL_DIST_JS}/pglite-js.js \
if COPTS="-O2 -g3 --no-wasm-opt" ${CC} ${CC_PGLITE} ${PGINC} -o ${PGL_DIST_JS}/pglite-js.js \
-sGLOBAL_BASE=${CMA_MB}MB -ferror-limit=1 \
-sFORCE_FILESYSTEM=1 $EMCC_NODE \
-sFORCE_FILESYSTEM=1 $EMCC_NODE -sMAIN_MODULE=1 -sEXPORT_ALL -sASSERTIONS=0 \
-sALLOW_TABLE_GROWTH -sALLOW_MEMORY_GROWTH -sERROR_ON_UNDEFINED_SYMBOLS \
-sEXPORTED_RUNTIME_METHODS=${EXPORTED_RUNTIME_METHODS} \
${BUILD_PATH}/pglite.o \
$LINKER $LIBPGCORE \
$LIBPGCORE \
$LINK_ICU \
-lnodefs.js -lidbfs.js -lxml2 -lz
then
./wasm-build/linkexport.sh
./wasm-build/linkimports.sh
else
echo "
* linking node raw version of pglite failed"; exit 250

fi


echo "

* linking version of pglite ( with .data initial filesystem, and html repl) (required symbols)

BUILD_PATH=${BUILD_PATH}
LINKER=$LINKER
LIBPGCORE=$LIBPGCORE

echo " * linking web version of pglite ( with .data initial filesystem, and html repl)"
COPTS="$LOPTS" ${CC} ${CC_PGLITE} -o ${PGL_DIST_WEB}/pglite.html --shell-file ${WORKSPACE}/pglite-${PG_BRANCH}/repl.html \

"

# function from :
# ${BUILD_PATH}/src/interfaces/libpq/libpq.a
# required are to be found in :
# pglite.o
#

# LOPTS="-Os -g0"
#
if COPTS="$LOPTS" ${CC} ${CC_PGLITE} -o ${PGL_DIST_WEB}/pglite.html --shell-file ${WORKSPACE}/pglite-${PG_BRANCH}/repl.html \
$PGPRELOAD \
-sGLOBAL_BASE=${CMA_MB}MB -ferror-limit=1 \
-sFORCE_FILESYSTEM=1 -sNO_EXIT_RUNTIME=1 -sENVIRONMENT=node,web \
$LINKER \
-sMODULARIZE=1 -sEXPORT_ES6=1 -sEXPORT_NAME=Module \
-sALLOW_TABLE_GROWTH -sALLOW_MEMORY_GROWTH -sERROR_ON_UNDEFINED_SYMBOLS \
-sALLOW_TABLE_GROWTH -sALLOW_MEMORY_GROWTH -sERROR_ON_UNDEFINED_SYMBOLS=1 \
-sEXPORTED_RUNTIME_METHODS=${EXPORTED_RUNTIME_METHODS} \
${PGINC} ${BUILD_PATH}/pglite.o \
$LINKER $LIBPGCORE \
$LIBPGCORE \
$LINK_ICU \
-lnodefs.js -lidbfs.js -lxml2 -lz

then
du -hs du -hs ${PG_DIST}/*
touch ${WORKSPACE}/done
else
echo "
* linking web version of pglite failed"; exit 272
fi
else
echo "compilation of libpglite ${PG_BRANCH} failed"
exit 220
echo "compilation of libpglite ${PG_BRANCH} failed"; exit 275
fi
fi


du -hs ${PG_DIST}/*


echo "pglite/build($BUILD): end"

13 changes: 13 additions & 0 deletions pglite-REL_17_4_WASM/interactive_one.c
Original file line number Diff line number Diff line change
Expand Up @@ -720,6 +720,12 @@ puts("# 631: PIPELINING + rfq");
} else {
cma_wsize = 0;
PDEBUG("# 698: no data, send empty ?");
// TODO: dedup 739
if (sockfiles) {
fclose(SOCKET_FILE);
SOCKET_FILE = NULL;
rename(PGS_OLOCK, PGS_OUT);
}
}
} else {
pg_prompt();
Expand All @@ -729,6 +735,13 @@ puts("# 631: PIPELINING + rfq");
puts("# 686: socket has data");
if (sockfiles)
printf("# 688: socket file not flushed -> read(%d) " PGS_OLOCK "->" PGS_OUT"\n", SOCKET_DATA);
} else {
// TODO: dedup 723
if (sockfiles) {
fclose(SOCKET_FILE);
SOCKET_FILE = NULL;
rename(PGS_OLOCK, PGS_OUT);
}
}
if (cma_wsize)
puts("ERROR: cma was not flushed before socketfile interface");
Expand Down
8 changes: 4 additions & 4 deletions pglite-REL_17_4_WASM/pg_main.c
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@

// for handling REVOKIE ex in initdb
#if defined(__wasi__)
#define FIXME 1
// for handling REVOKE exception in initdb
#if defined(__wasi__) || defined(__EMSCRIPTEN__)
# define FIXME 1
#else
#define FIXME 0
# define FIXME 0
#endif

#define PGL_MAIN
Expand Down
Loading