Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rykD4-000EWP-JO for pgsql-general@arkaria.postgresql.org; Mon, 22 Apr 2024 03:19:14 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1rykD2-00HB5s-6I for pgsql-general@arkaria.postgresql.org; Mon, 22 Apr 2024 03:19:12 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rykD1-00HB5h-Nf for pgsql-general@lists.postgresql.org; Mon, 22 Apr 2024 03:19:11 +0000 Received: from mail-ej1-x635.google.com ([2a00:1450:4864:20::635]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1rykCx-0040UF-65 for pgsql-general@lists.postgresql.org; Mon, 22 Apr 2024 03:19:10 +0000 Received: by mail-ej1-x635.google.com with SMTP id a640c23a62f3a-a526a200879so481505066b.1 for ; Sun, 21 Apr 2024 20:19:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1713755944; x=1714360744; darn=lists.postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=M8+J/6dETZvaQ8KInQDO0lNBNolGE2zSUJgJ++oE8k4=; b=IoGj1rt2PTOVz3LoxFEoJQhHH4FNQoBFRmxL7fVcqVCQLvdCFlHAH4K/Ps4XBDytLf 9T4SS9k+wELtvsbZD0lYnwUk8YJ2okdVojAwmRL+KwD3RE2qGCy0KH2nKZdhqrfNYqVx e3XZMhb2SjIO9Qp9SNh1ylJL68BjmnxItGZ16gK5TdCEvJe9aImY6gGQ0AMHfWcR+8f1 lplZZ9lR5/FrZ6yZzsvzdSMBn5FGLoS+8ckLUPpRWV9B0livmeVGguqKhsAr1slluXVO l0yB8m0aMIO+NYb2ZoqkAff+e/PyjBhI1K9VAvV2vbxZv5g4IDUB0+H/nH0Vkz6sa36A 4kVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1713755944; x=1714360744; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=M8+J/6dETZvaQ8KInQDO0lNBNolGE2zSUJgJ++oE8k4=; b=ghBJHTnEYFu4rWCIZUBYBaS9AFYT6gG5LhBTWcXKkMxkTR9oJoDYjWoRzMsoCEwslw JJfeEQJfcB5GPJQiL8dq+6eoH4lmJ2NuZ8US9enXAMrTbizjm1lELMPtdEKPBHVhrVyj c+k7g1kQzwmfD8bipE0syKLrpNOVeloOdUjPxsCarO/N2K8/ynmcUeRcZELTHWNQ1FZP A+5hcY30MGQmGukfRED02jhs6UA9GMwTHEXaJ/CrwJAo3mm/kFyLza4hxjuclTIThAeg eEfWNc87TunXnVECLX4uUqHDVawSe8kQXQ+K05NyNr6AFGW11liCVbD/396+ZXBK3mBN rYIQ== X-Gm-Message-State: AOJu0Yy1caF+APaspq4Dsuf4KyBYXYyaLX+IrRIRK30/Q+8KRMXLmCVz WYVMore0gkG9NrlilRXrsfPiB2wSqwDqcumsGyDkmL2h7YyrweeVMbaxCMWBKms+PDAyLLSyXX4 Tdfa8wNWl9BIhAckGcGibWI7FXhsN7y4roQY= X-Google-Smtp-Source: AGHT+IFxYqVqHr58ghHMLWKHKhLpMtSWUOI7k7MZtzH0SRa42eZFM1NAUU/EyEqGej3VCvHBgFwo66HBS5Kf9mcKmn4= X-Received: by 2002:a17:906:714c:b0:a55:beaa:c9f3 with SMTP id z12-20020a170906714c00b00a55beaac9f3mr142045ejj.75.1713755944317; Sun, 21 Apr 2024 20:19:04 -0700 (PDT) MIME-Version: 1.0 From: Abhishek Chanda Date: Sun, 21 Apr 2024 22:18:53 -0500 Message-ID: Subject: Missing PG_MODULE_MAGIC error To: pgsql-general@lists.postgresql.org Content-Type: multipart/alternative; boundary="0000000000004af9670616a6e69f" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000004af9670616a6e69f Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi all, I am trying to test an extension that links to rocksdb. When I try to load it in postgres, it complains "missing magic block" while I do have PG_MODULE_MAGIC in my src. Here is a minimal repro // pgtam.c #include "postgres.h" #include #include "fmgr.h" #include "access/tableam.h" #include "access/heapam.h" #include "nodes/execnodes.h" #include "catalog/index.h" #include "commands/vacuum.h" #include "utils/builtins.h" #include "executor/tuptable.h" #include "rocksdb/c.h" PG_MODULE_MAGIC; // Makefile MODULE_big =3D pgtam EXTENSION =3D pgtam DATA =3D pgtam--0.0.1.sql PG_CPPFLAGS +=3D -L/usr/local/lib -g SHLIB_LINK +=3D -L/usr/local/lib -lrocksdb PG_CONFIG =3D /usr/local/pgsql/bin/pg_config PGXS :=3D $(shell $(PG_CONFIG) --pgxs) include $(PGXS) // extension build =E2=95=B0=E2=94=80$ make clean && make && sudo make install rm -f pgtam.dylib libpgtam.a libpgtam.pc gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=3Dvla -Werror=3Dunguarded-availability-new -Wendif-labels -Wmissing-format-attribute -Wcast-function-type -Wformat-security -fno-strict-aliasing -fwrapv -Wno-unused-command-line-argument -Wno-compound-token-split-by-macro -g -ggdb -Og -g3 -fno-omit-frame-pointer -fvisibility=3Dhidden -bundle -o pgtam.dylib -L/usr/local/pgsql/lib -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Develo= per/SDKs/MacOSX14.4.sdk -Wl,-dead_strip_dylibs -fvisibility=3Dhidden -L/usr/local/lib -lrocksdb -bundle_loader /usr/local/pgsql/bin/postgres /opt/homebrew/bin/gmkdir -p '/usr/local/pgsql/lib' /opt/homebrew/bin/gmkdir -p '/usr/local/pgsql/share/extension' /opt/homebrew/bin/gmkdir -p '/usr/local/pgsql/share/extension' /opt/homebrew/bin/ginstall -c -m 755 pgtam.dylib '/usr/local/pgsql/lib/pgtam.dylib' /opt/homebrew/bin/ginstall -c -m 644 .//pgtam.control '/usr/local/pgsql/share/extension/' /opt/homebrew/bin/ginstall -c -m 644 .//pgtam--0.0.1.sql '/usr/local/pgsql/share/extension/' Postgres build: cloned and built at SHA 849172ff4883d44168f96f39d3fde96d0aa34c99 =E2=95=B0=E2=94=80$ /usr/local/pgsql/bin/pg_ctl -D test-db -l logfile resta= rt waiting for server to shut down.... done server stopped waiting for server to start.... done server started =E2=95=AD=E2=94=80~/src/postgres =E2=80=B9849172ff48=E2=97=8F=E2=80=BA =E2=95=B0=E2=94=80$ /usr/local/pgsql/bin/psql postgres psql (17devel) Type "help" for help. postgres=3D# CREATE EXTENSION pgtam; ERROR: incompatible library "/usr/local/pgsql/lib/pgtam.dylib": missing magic block HINT: Extension libraries are required to use the PG_MODULE_MAGIC macro. What am I missing? --0000000000004af9670616a6e69f Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi all,

I am trying to test an extensio= n=C2=A0that links to rocksdb. When I try to load it in postgres, it complai= ns=C2=A0"missing magic block" while I do have=C2=A0PG_MODULE_MAGI= C in my src. Here is a minimal repro

// pgtam.c
#include "postgres.h"
#include <assert.h>
#in= clude "fmgr.h"
#include "access/tableam.h"
#inclu= de "access/heapam.h"
#include "nodes/execnodes.h"#include "catalog/index.h"
#include "commands/vacuum.h&q= uot;
#include "utils/builtins.h"
#include "executor/tu= ptable.h"

#include "rocksdb/c.h"

PG_MODULE_MAG= IC;

// Makefile
MODULE_big =3D pgtam=
EXTENSION =3D pgtam
DATA =3D pgtam--0.0.1.sql

PG_CPPFLAGS += =3D -L/usr/local/lib -g
SHLIB_LINK +=3D -L/usr/local/lib -lrocksdb
PG_CONFIG =3D /usr/local/pgsql/bin/pg_config
PGXS :=3D $(shell $(PG_CO= NFIG) --pgxs)
include $(PGXS)

// extension = build
=E2=95=B0=E2=94=80$ make clean && make && s= udo make install
rm -f pgtam.dylib =C2=A0 libpgtam.a =C2=A0libpgtam.pcgcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statem= ent -Werror=3Dvla -Werror=3Dunguarded-availability-new -Wendif-labels -Wmis= sing-format-attribute -Wcast-function-type -Wformat-security -fno-strict-al= iasing -fwrapv -Wno-unused-command-line-argument -Wno-compound-token-split-= by-macro -g -ggdb -Og -g3 -fno-omit-frame-pointer =C2=A0-fvisibility=3Dhidd= en -bundle -o pgtam.dylib =C2=A0-L/usr/local/pgsql/lib =C2=A0-isysroot /App= lications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/= SDKs/MacOSX14.4.sdk =C2=A0 -Wl,-dead_strip_dylibs =C2=A0 -fvisibility=3Dhid= den -L/usr/local/lib -lrocksdb -bundle_loader /usr/local/pgsql/bin/postgres=
/opt/homebrew/bin/gmkdir -p '/usr/local/pgsql/lib'
/opt/home= brew/bin/gmkdir -p '/usr/local/pgsql/share/extension'
/opt/homeb= rew/bin/gmkdir -p '/usr/local/pgsql/share/extension'
/opt/homebr= ew/bin/ginstall -c -m 755 =C2=A0pgtam.dylib '/usr/local/pgsql/lib/pgtam= .dylib'
/opt/homebrew/bin/ginstall -c -m 644 .//pgtam.control '/= usr/local/pgsql/share/extension/'
/opt/homebrew/bin/ginstall -c -m 6= 44 .//pgtam--0.0.1.sql =C2=A0'/usr/local/pgsql/share/extension/'

Postgres build: cloned and built at SHA 849172ff= 4883d44168f96f39d3fde96d0aa34c99

=E2=95=B0=E2=94= =80$ /usr/local/pgsql/bin/pg_ctl -D test-db -l logfile restart
waiting f= or server to shut down.... done
server stopped
waiting for server to = start.... done
server started=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=C2=A0
=E2=95=AD=E2=94=80~/= src/postgres =E2=80=B9849172ff48=E2=97=8F=E2=80=BA
=E2=95=B0=E2=94=80$ /= usr/local/pgsql/bin/psql postgres
psql (17devel)
Type "help"= ; for help.

postgres=3D# CREATE EXTENSION pgtam;
ERROR: =C2=A0inc= ompatible library "/usr/local/pgsql/lib/pgtam.dylib": missing mag= ic block
HINT: =C2=A0Extension libraries are required to use the PG_MODU= LE_MAGIC macro.

What am I missing?
--0000000000004af9670616a6e69f--