Thread: BUG #16737: error running compiled C program with connection to Postgres
BUG #16737: error running compiled C program with connection to Postgres
From
PG Bug reporting form
Date:
The following bug has been logged on the website: Bug reference: 16737 Logged by: richard bee Email address: rb9999999@gmail.com PostgreSQL version: 13.1 Operating system: Mac iOS Big Sur Description: This is an issue for both Apple and Postgres - I have registered the same issue with Apple here: https://feedbackassistant.apple.com/feedback/8907834 when running a compiled C program with connection attributes to postgres, I now get the following error after upgrading to Big Sur: dyld: Library not loaded: /usr/lib/libpq.5.dylib Referenced from: /xxdir/program Reason: image not found Abort trap: 6 indeed, there is nothing in /usr/lib directory that resembles libpq.5.dylib, neither file nor link and the /usr/lib directory in Big Sur is locked down and so cannot enter anything here have implemented the following without resolution: https://stackoverflow.com/questions/64256675/copy-libpq-5-dylib-to-usr-lib-libpq-5-dylib The code itself is the usual example of C to Progress connection code and worked prior to Big Sur upgrade on my macbook pro 2018 sample c program to compile is here: https://www.postgresql.org/docs/9.1/libpq-example.html compilation command being used is: gcc -o e1_ e1.c -I "/Library/PostgreSQL/13/include" -lpq -std=c99 The same error also happens with the clang compiler
PG Bug reporting form <noreply@postgresql.org> writes: > when running a compiled C program with connection attributes to postgres, I > now get the following error after upgrading to Big Sur: > dyld: Library not loaded: /usr/lib/libpq.5.dylib > Referenced from: /xxdir/program > Reason: image not found > Abort trap: 6 Complaining here won't help you with that. The Postgres project has no say in what Apple chooses to include in their operating system. Having said that, the version that Apple was shipping up through Catalina was pretty darn obsolete: $ ls -1 /usr/lib/libpq* /usr/lib/libpq.5.6.dylib /usr/lib/libpq.5.dylib /usr/lib/libpq.dylib libpq.5.6 would be from Postgres 9.3, which has been out of support for some time ... and it'd be a very good bet that this wasn't an end-of-life version anyway, meaning it's certainly missing security and other bug fixes. So personally I wouldn't use that anyway. The most obvious path forward is to use Homebrew or MacPorts to install Postgres, as well as anything else you need. (It looks like Apple culled a heck of a lot from /usr/lib in Big Sur, not only libpq.) regards, tom lane