0

On doing bundle install for this rails project, i am facing with this issue.

My Mac details

  1. Chip - Apple M1 Pro
  2. macOS - 13.4.1

I have gone through most of the other articles based on the same issue, but nothing seems to solve the issue. On bundling it should install all the gems without any error.

I have already installed postgresql and libpq

On doing gem install pg

Building native extensions. This could take a while...
ERROR:  Error installing pg:
        ERROR: Failed to build gem native extension.

    current directory: /Users/anmittal/.rvm/gems/ruby-2.6.5@system_dashboard/gems/pg-1.3.5/ext
/Users/anmittal/.rvm/rubies/ruby-2.6.5/bin/ruby extconf.rb
Calling libpq with GVL unlocked
checking for pg_config... yes
Using config values from /opt/homebrew/opt/libpq/bin/pg_config
checking for whether -Wl,-rpath,/opt/homebrew/opt/libpq/lib is accepted as LDFLAGS... yes
Using libpq from /opt/homebrew/opt/libpq/lib
checking for libpq-fe.h... yes
checking for libpq/libpq-fs.h... yes
checking for pg_config_manual.h... yes
checking for PQconnectdb() in -lpq... no
checking for PQconnectdb() in -llibpq... no
checking for PQconnectdb() in -lms/libpq... no
Can't find the PostgreSQL client library (libpq)
*****************************************************************************

Unable to find PostgreSQL client library.

Please install libpq or postgresql client package like so:
  brew install libpq

or try again with:
  gem install pg -- --with-pg-config=/path/to/pg_config

or set library paths manually with:
  gem install pg -- --with-pg-include=/path/to/libpq-fe.h/ --with-pg-lib=/path/to/libpq.so/

*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=/Users/anmittal/.rvm/rubies/ruby-2.6.5/bin/$(RUBY_BASE_NAME)
        --with-pg
        --without-pg
        --enable-gvl-unlock
        --disable-gvl-unlock
        --enable-windows-cross
        --disable-windows-cross
        --with-pg-config
        --without-pg-config
        --with-pg_config
        --without-pg_config
        --with-pg-dir
        --without-pg-dir
        --with-pg-include
        --without-pg-include=${pg-dir}/include
        --with-pg-lib
        --without-pg-lib=${pg-dir}/lib
        --with-pqlib
        --without-pqlib
        --with-libpqlib
        --without-libpqlib
        --with-ms/libpqlib
        --without-ms/libpqlib

To see why this extension failed to compile, please check the mkmf.log which can be found here:

  /Users/anmittal/.rvm/gems/ruby-2.6.5@system_dashboard/extensions/x86_64-darwin-21/2.6.0/pg-1.3.5/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in /Users/anmittal/.rvm/gems/ruby-2.6.5@system_dashboard/gems/pg-1.3.5 for inspection.
Results logged to /Users/anmittal/.rvm/gems/ruby-2.6.5@system_dashboard/extensions/x86_64-darwin-21/2.6.0/pg-1.3.5/gem_make.out

On doing env ARCHFLAGS="-arch arm64" gem install pg -v '1.3.5'

Building native extensions. This could take a while...
ERROR:  Error installing pg:
        ERROR: Failed to build gem native extension.

    current directory: /Users/anmittal/.rvm/gems/ruby-2.6.5@system_dashboard/gems/pg-1.3.5/ext
/Users/anmittal/.rvm/rubies/ruby-2.6.5/bin/ruby extconf.rb
Calling libpq with GVL unlocked
checking for pg_config... yes
Using config values from /opt/homebrew/opt/libpq/bin/pg_config
checking for whether -Wl,-rpath,/opt/homebrew/opt/libpq/lib is accepted as LDFLAGS... yes
Using libpq from /opt/homebrew/opt/libpq/lib
checking for libpq-fe.h... yes
checking for libpq/libpq-fs.h... yes
checking for pg_config_manual.h... yes
checking for PQconnectdb() in -lpq... no
checking for PQconnectdb() in -llibpq... no
checking for PQconnectdb() in -lms/libpq... no
Can't find the PostgreSQL client library (libpq)
*****************************************************************************

Unable to find PostgreSQL client library.

Please install libpq or postgresql client package like so:
  brew install libpq

or try again with:
  gem install pg -- --with-pg-config=/path/to/pg_config

or set library paths manually with:
  gem install pg -- --with-pg-include=/path/to/libpq-fe.h/ --with-pg-lib=/path/to/libpq.so/

*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=/Users/anmittal/.rvm/rubies/ruby-2.6.5/bin/$(RUBY_BASE_NAME)
        --with-pg
        --without-pg
        --enable-gvl-unlock
        --disable-gvl-unlock
        --enable-windows-cross
        --disable-windows-cross
        --with-pg-config
        --without-pg-config
        --with-pg_config
        --without-pg_config
        --with-pg-dir
        --without-pg-dir
        --with-pg-include
        --without-pg-include=${pg-dir}/include
        --with-pg-lib
        --without-pg-lib=${pg-dir}/lib
        --with-pqlib
        --without-pqlib
        --with-libpqlib
        --without-libpqlib
        --with-ms/libpqlib
        --without-ms/libpqlib

To see why this extension failed to compile, please check the mkmf.log which can be found here:

  /Users/anmittal/.rvm/gems/ruby-2.6.5@system_dashboard/extensions/x86_64-darwin-21/2.6.0/pg-1.3.5/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in /Users/anmittal/.rvm/gems/ruby-2.6.5@system_dashboard/gems/pg-1.3.5 for inspection.
Results logged to /Users/anmittal/.rvm/gems/ruby-2.6.5@system_dashboard/extensions/x86_64-darwin-21/2.6.0/pg-1.3.5/gem_make.out

On doing gem install pg -- --with-pg-config=/opt/homebrew/opt/libpq/bin/pg_config

Building native extensions with: '--with-pg-config=/opt/homebrew/opt/libpq/bin/pg_config'
This could take a while...
ERROR:  Error installing pg:
        ERROR: Failed to build gem native extension.

    current directory: /Users/anmittal/.rvm/gems/ruby-2.6.5@system_dashboard/gems/pg-1.5.3/ext
/Users/anmittal/.rvm/rubies/ruby-2.6.5/bin/ruby extconf.rb --with-pg-config\=/opt/homebrew/opt/libpq/bin/pg_config
Calling libpq with GVL unlocked
Using config values from /opt/homebrew/opt/libpq/bin/pg_config
checking for whether -Wl,-rpath,/opt/homebrew/opt/libpq/lib is accepted as LDFLAGS... yes
Using libpq from /opt/homebrew/opt/libpq/lib
checking for libpq-fe.h... yes
checking for libpq/libpq-fs.h... yes
checking for pg_config_manual.h... yes
checking for PQconnectdb() in -lpq... no
checking for PQconnectdb() in -llibpq... no
checking for PQconnectdb() in -lms/libpq... no
Can't find the PostgreSQL client library (libpq)
*****************************************************************************

Unable to find PostgreSQL client library.

Please install libpq or postgresql client package like so:
  brew install libpq

or try again with:
  gem install pg -- --with-pg-config=/path/to/pg_config

or set library paths manually with:
  gem install pg -- --with-pg-include=/path/to/libpq-fe.h/ --with-pg-lib=/path/to/libpq.so/

*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=/Users/anmittal/.rvm/rubies/ruby-2.6.5/bin/$(RUBY_BASE_NAME)
        --with-pg
        --without-pg
        --enable-gvl-unlock
        --disable-gvl-unlock
        --enable-windows-cross
        --disable-windows-cross
        --with-pg-config
        --with-pg-dir
        --without-pg-dir
        --with-pg-include
        --without-pg-include=${pg-dir}/include
        --with-pg-lib
        --without-pg-lib=${pg-dir}/lib
        --with-pqlib
        --without-pqlib
        --with-libpqlib
        --without-libpqlib
        --with-ms/libpqlib
        --without-ms/libpqlib

To see why this extension failed to compile, please check the mkmf.log which can be found here:

  /Users/anmittal/.rvm/gems/ruby-2.6.5@system_dashboard/extensions/x86_64-darwin-21/2.6.0/pg-1.5.3/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in /Users/anmittal/.rvm/gems/ruby-2.6.5@system_dashboard/gems/pg-1.5.3 for inspection.
Results logged to /Users/anmittal/.rvm/gems/ruby-2.6.5@system_dashboard/extensions/x86_64-darwin-21/2.6.0/pg-1.5.3/gem_make.out

On doing

echo 'export PATH="/opt/homebrew/opt/libpq/bin:$PATH"' >> ~/.zshrc 
echo 'export LDFLAGS="-L/opt/homebrew/opt/libpq/lib"' >> ~/.zshrc
echo 'export CPPFLAGS="-I/opt/homebrew/opt/libpq/include"' >> ~/.zshrc 
echo 'export PATH="/opt/homebrew/opt/libpq/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

And after that doing the gem install pg command gives the same error.

Output of mkmf.log

block in append_ldflags: checking for whether -Wl,-rpath,/opt/homebrew/opt/libpq/lib is accepted as LDFLAGS... -------------------- yes

"gcc -o conftest -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/x86_64-darwin21 -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/ruby/backward -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0 -I. -I/opt/homebrew/opt/libpq/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT   -O3 -ggdb3 -Wall -Wextra -Wdeclaration-after-statement -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens  -fno-common -pipe conftest.c  -L. -L/Users/anmittal/.rvm/rubies/ruby-2.6.5/lib -L/opt/homebrew/opt/libpq/lib -L. -fstack-protector-strong -L/usr/local/lib     -lruby.2.6   "
checked program was:
/* begin */
1: #include "ruby.h"
2: 
3: int main(int argc, char **argv)
4: {
5:   return 0;
6: }
/* end */

"gcc -o conftest -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/x86_64-darwin21 -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/ruby/backward -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0 -I. -I/opt/homebrew/opt/libpq/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT   -O3 -ggdb3 -Wall -Wextra -Wdeclaration-after-statement -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens  -fno-common -pipe conftest.c  -L. -L/Users/anmittal/.rvm/rubies/ruby-2.6.5/lib -L/opt/homebrew/opt/libpq/lib -L. -fstack-protector-strong -L/usr/local/lib     -lruby.2.6 -Wl,-rpath,/opt/homebrew/opt/libpq/lib  "
checked program was:
/* begin */
1: #include "ruby.h"
2: 
3: int main(int argc, char **argv)
4: {
5:   return 0;
6: }
/* end */

--------------------

find_header: checking for libpq-fe.h... -------------------- yes

"gcc -E -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/x86_64-darwin21 -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/ruby/backward -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0 -I. -I/opt/homebrew/opt/libpq/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT   -O3 -ggdb3 -Wall -Wextra -Wdeclaration-after-statement -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens  -fno-common -pipe  conftest.c -o conftest.i"
checked program was:
/* begin */
1: #include "ruby.h"
2: 
3: #include <libpq-fe.h>
/* end */

--------------------

find_header: checking for libpq/libpq-fs.h... -------------------- yes

"gcc -E -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/x86_64-darwin21 -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/ruby/backward -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0 -I. -I/opt/homebrew/opt/libpq/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT   -O3 -ggdb3 -Wall -Wextra -Wdeclaration-after-statement -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens  -fno-common -pipe  conftest.c -o conftest.i"
checked program was:
/* begin */
1: #include "ruby.h"
2: 
3: #include <libpq/libpq-fs.h>
/* end */

--------------------

find_header: checking for pg_config_manual.h... -------------------- yes

"gcc -E -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/x86_64-darwin21 -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/ruby/backward -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0 -I. -I/opt/homebrew/opt/libpq/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT   -O3 -ggdb3 -Wall -Wextra -Wdeclaration-after-statement -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens  -fno-common -pipe  conftest.c -o conftest.i"
checked program was:
/* begin */
1: #include "ruby.h"
2: 
3: #include <pg_config_manual.h>
/* end */

--------------------

have_library: checking for PQconnectdb() in -lpq... -------------------- no

"gcc -o conftest -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/x86_64-darwin21 -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/ruby/backward -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0 -I. -I/opt/homebrew/opt/libpq/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT   -O3 -ggdb3 -Wall -Wextra -Wdeclaration-after-statement -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens  -fno-common -pipe conftest.c  -L. -L/Users/anmittal/.rvm/rubies/ruby-2.6.5/lib -L/opt/homebrew/opt/libpq/lib -L. -fstack-protector-strong -L/usr/local/lib -Wl,-rpath,/opt/homebrew/opt/libpq/lib     -lruby.2.6 -lpq   "
ld: warning: ignoring file /opt/homebrew/opt/libpq/lib/libpq.dylib, building for macOS-x86_64 but attempting to link with file built for macOS-arm64
Undefined symbols for architecture x86_64:
  "_PQconnectdb", referenced from:
      _t in conftest-682b8a.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
checked program was:
/* begin */
 1: #include "ruby.h"
 2: 
 3: #include <libpq-fe.h>
 4: 
 5: /*top*/
 6: extern int t(void);
 7: int main(int argc, char **argv)
 8: {
 9:   if (argc > 1000000) {
10:     int (* volatile tp)(void)=(int (*)(void))&t;
11:     printf("%d", (*tp)());
12:   }
13: 
14:   return 0;
15: }
16: int t(void) { void ((*volatile p)()); p = (void ((*)()))PQconnectdb; return !p; }
/* end */

"gcc -o conftest -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/x86_64-darwin21 -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/ruby/backward -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0 -I. -I/opt/homebrew/opt/libpq/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT   -O3 -ggdb3 -Wall -Wextra -Wdeclaration-after-statement -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens  -fno-common -pipe conftest.c  -L. -L/Users/anmittal/.rvm/rubies/ruby-2.6.5/lib -L/opt/homebrew/opt/libpq/lib -L. -fstack-protector-strong -L/usr/local/lib -Wl,-rpath,/opt/homebrew/opt/libpq/lib     -lruby.2.6 -lpq   "
conftest.c:16:13: error: conflicting types for 'PQconnectdb'
extern void PQconnectdb();
            ^
/opt/homebrew/opt/libpq/include/libpq-fe.h:287:16: note: previous declaration is here
extern PGconn *PQconnectdb(const char *conninfo);
               ^
conftest.c:17:27: error: too few arguments to function call, single argument 'conninfo' was not specified
int t(void) { PQconnectdb(); return 0; }
              ~~~~~~~~~~~ ^
/opt/homebrew/opt/libpq/include/libpq-fe.h:287:16: note: 'PQconnectdb' declared here
extern PGconn *PQconnectdb(const char *conninfo);
               ^
2 errors generated.
checked program was:
/* begin */
 1: #include "ruby.h"
 2: 
 3: #include <libpq-fe.h>
 4: 
 5: /*top*/
 6: extern int t(void);
 7: int main(int argc, char **argv)
 8: {
 9:   if (argc > 1000000) {
10:     int (* volatile tp)(void)=(int (*)(void))&t;
11:     printf("%d", (*tp)());
12:   }
13: 
14:   return 0;
15: }
16: extern void PQconnectdb();
17: int t(void) { PQconnectdb(); return 0; }
/* end */

--------------------

have_library: checking for PQconnectdb() in -llibpq... -------------------- no

"gcc -o conftest -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/x86_64-darwin21 -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/ruby/backward -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0 -I. -I/opt/homebrew/opt/libpq/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT   -O3 -ggdb3 -Wall -Wextra -Wdeclaration-after-statement -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens  -fno-common -pipe conftest.c  -L. -L/Users/anmittal/.rvm/rubies/ruby-2.6.5/lib -L/opt/homebrew/opt/libpq/lib -L. -fstack-protector-strong -L/usr/local/lib -Wl,-rpath,/opt/homebrew/opt/libpq/lib     -lruby.2.6 -llibpq   "
ld: library not found for -llibpq
clang: error: linker command failed with exit code 1 (use -v to see invocation)
checked program was:
/* begin */
 1: #include "ruby.h"
 2: 
 3: #include <libpq-fe.h>
 4: 
 5: /*top*/
 6: extern int t(void);
 7: int main(int argc, char **argv)
 8: {
 9:   if (argc > 1000000) {
10:     int (* volatile tp)(void)=(int (*)(void))&t;
11:     printf("%d", (*tp)());
12:   }
13: 
14:   return 0;
15: }
16: int t(void) { void ((*volatile p)()); p = (void ((*)()))PQconnectdb; return !p; }
/* end */

"gcc -o conftest -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/x86_64-darwin21 -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/ruby/backward -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0 -I. -I/opt/homebrew/opt/libpq/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT   -O3 -ggdb3 -Wall -Wextra -Wdeclaration-after-statement -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens  -fno-common -pipe conftest.c  -L. -L/Users/anmittal/.rvm/rubies/ruby-2.6.5/lib -L/opt/homebrew/opt/libpq/lib -L. -fstack-protector-strong -L/usr/local/lib -Wl,-rpath,/opt/homebrew/opt/libpq/lib     -lruby.2.6 -llibpq   "
conftest.c:16:13: error: conflicting types for 'PQconnectdb'
extern void PQconnectdb();
            ^
/opt/homebrew/opt/libpq/include/libpq-fe.h:287:16: note: previous declaration is here
extern PGconn *PQconnectdb(const char *conninfo);
               ^
conftest.c:17:27: error: too few arguments to function call, single argument 'conninfo' was not specified
int t(void) { PQconnectdb(); return 0; }
              ~~~~~~~~~~~ ^
/opt/homebrew/opt/libpq/include/libpq-fe.h:287:16: note: 'PQconnectdb' declared here
extern PGconn *PQconnectdb(const char *conninfo);
               ^
2 errors generated.
checked program was:
/* begin */
 1: #include "ruby.h"
 2: 
 3: #include <libpq-fe.h>
 4: 
 5: /*top*/
 6: extern int t(void);
 7: int main(int argc, char **argv)
 8: {
 9:   if (argc > 1000000) {
10:     int (* volatile tp)(void)=(int (*)(void))&t;
11:     printf("%d", (*tp)());
12:   }
13: 
14:   return 0;
15: }
16: extern void PQconnectdb();
17: int t(void) { PQconnectdb(); return 0; }
/* end */

--------------------

have_library: checking for PQconnectdb() in -lms/libpq... -------------------- no

"gcc -o conftest -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/x86_64-darwin21 -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/ruby/backward -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0 -I. -I/opt/homebrew/opt/libpq/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT   -O3 -ggdb3 -Wall -Wextra -Wdeclaration-after-statement -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens  -fno-common -pipe conftest.c  -L. -L/Users/anmittal/.rvm/rubies/ruby-2.6.5/lib -L/opt/homebrew/opt/libpq/lib -L. -fstack-protector-strong -L/usr/local/lib -Wl,-rpath,/opt/homebrew/opt/libpq/lib     -lruby.2.6 -lms/libpq   "
ld: library not found for -lms/libpq
clang: error: linker command failed with exit code 1 (use -v to see invocation)
checked program was:
/* begin */
 1: #include "ruby.h"
 2: 
 3: #include <libpq-fe.h>
 4: 
 5: /*top*/
 6: extern int t(void);
 7: int main(int argc, char **argv)
 8: {
 9:   if (argc > 1000000) {
10:     int (* volatile tp)(void)=(int (*)(void))&t;
11:     printf("%d", (*tp)());
12:   }
13: 
14:   return 0;
15: }
16: int t(void) { void ((*volatile p)()); p = (void ((*)()))PQconnectdb; return !p; }
/* end */

"gcc -o conftest -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/x86_64-darwin21 -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0/ruby/backward -I/Users/anmittal/.rvm/rubies/ruby-2.6.5/include/ruby-2.6.0 -I. -I/opt/homebrew/opt/libpq/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT   -O3 -ggdb3 -Wall -Wextra -Wdeclaration-after-statement -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens  -fno-common -pipe conftest.c  -L. -L/Users/anmittal/.rvm/rubies/ruby-2.6.5/lib -L/opt/homebrew/opt/libpq/lib -L. -fstack-protector-strong -L/usr/local/lib -Wl,-rpath,/opt/homebrew/opt/libpq/lib     -lruby.2.6 -lms/libpq   "
conftest.c:16:13: error: conflicting types for 'PQconnectdb'
extern void PQconnectdb();
            ^
/opt/homebrew/opt/libpq/include/libpq-fe.h:287:16: note: previous declaration is here
extern PGconn *PQconnectdb(const char *conninfo);
               ^
conftest.c:17:27: error: too few arguments to function call, single argument 'conninfo' was not specified
int t(void) { PQconnectdb(); return 0; }
              ~~~~~~~~~~~ ^
/opt/homebrew/opt/libpq/include/libpq-fe.h:287:16: note: 'PQconnectdb' declared here
extern PGconn *PQconnectdb(const char *conninfo);
               ^
2 errors generated.
checked program was:
/* begin */
 1: #include "ruby.h"
 2: 
 3: #include <libpq-fe.h>
 4: 
 5: /*top*/
 6: extern int t(void);
 7: int main(int argc, char **argv)
 8: {
 9:   if (argc > 1000000) {
10:     int (* volatile tp)(void)=(int (*)(void))&t;
11:     printf("%d", (*tp)());
12:   }
13: 
14:   return 0;
15: }
16: extern void PQconnectdb();
17: int t(void) { PQconnectdb(); return 0; }
/* end */

--------------------

Pls help me out with what i'm doing wrong here.

  • Saying that you've _"gone through most of the other articles based on the same issue"_ basically forces anyone trying to help you to randomly guess at solutions. You need to list/show what you've tried. I'm going to close this as a duplicate because it's almost certainly `ARCHFLAGS`, or the `PATH`, or a `--with-pg-config` thing, all mentioned in these answers. If these answers don't resolve your issue, then feel free to edit your question by showing all the attempts from those answers and what the output was. – smathy Aug 25 '23 at 15:44
  • Thanks @smathy, will update my question with all the things i have already tried with their output. – anshul mittal Aug 26 '23 at 06:48
  • @smathy Should i create a new question? Or this is fine? – anshul mittal Aug 26 '23 at 13:53
  • No, that works: reopened. – smathy Aug 26 '23 at 15:16
  • what does mkmf.log tell you? – jamesc Aug 26 '23 at 22:47
  • Hi @jamesc, thanks for the comment. I have added the output for mkmf.log also. It is quite overwhelming for me to understand that. – anshul mittal Aug 27 '23 at 05:19
  • OK, see the excepted answer here https://stackoverflow.com/questions/74948382/pg-gem-install-fails-on-m1-mac-error-conflicting-types-for-pqconnectdb – jamesc Aug 28 '23 at 19:20

0 Answers0