Skip to content

Conversation

barracuda156
Copy link

This is to partly address this failure: #71
It seems that these headers were simply forgotten here, since other files add them when related functions are used.

@barracuda156 barracuda156 force-pushed the headers branch 2 times, most recently from de87c58 to c3c3018 Compare July 26, 2023 06:51
@barracuda156
Copy link
Author

Hmm, with mpq.c does not work as supposed. Without the header GCC complains:

make[1]: Entering directory `/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_mosml/mosml-dynlibs/work/mosml-13c581aec46eea134e478f2e2b6456278e36ecce/src/dynlibs/mpq'
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_mosml/mosml-dynlibs/work/compwrap/cc/opt/local/bin/gcc-mp-12 -Dunix -O2 -fno-defer-pop -fPIC -I/opt/local/include/mosml -I /opt/local/include/postgresql14 -c -o mpq.o mpq.c
In file included from mpq.c:8:
mpq.c: In function 'pq_getbool':
mpq.c:348:20: warning: implicit declaration of function 'strcmp' [-Wimplicit-function-declaration]
  348 |   return Val_bool(!strcmp(v, "t"));
      |                    ^~~~~~
/opt/local/include/mosml/mlvalues.h:98:45: note: in definition of macro 'Val_hp'
   98 | #define Val_hp(hp) ((value) (((header_t *) (hp)) + 1))
      |                                             ^~
/opt/local/include/mosml/mlvalues.h:241:21: note: in expansion of macro 'Atom'
  241 | #define Val_bool(x) Atom((x) != 0)
      |                     ^~~~
mpq.c:348:10: note: in expansion of macro 'Val_bool'
  348 |   return Val_bool(!strcmp(v, "t"));
      |          ^~~~~~~~
mpq.c:21:1: note: include '<string.h>' or provide a declaration of 'strcmp'
   20 | #include "libpq-fe.h"
  +++ |+#include <string.h>
   21 | 
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_mosml/mosml-dynlibs/work/compwrap/cc/opt/local/bin/gcc-mp-12 -Wl,-rpath,/opt/local/lib/mosml -bundle -undefined dynamic_lookup -lcrypto -o libmpq.so mpq.o /opt/local/lib/postgresql14/libpq.a

However if the header is added, it fails:

make[1]: Entering directory `/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_mosml/mosml-dynlibs/work/mosml-13c581aec46eea134e478f2e2b6456278e36ecce/src/dynlibs/mpq'
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_mosml/mosml-dynlibs/work/compwrap/cc/opt/local/bin/gcc-mp-12 -Dunix -O2 -fno-defer-pop -fPIC -I/opt/local/include/mosml -I /opt/local/include/postgresql14 -c -o mpq.o mpq.c
In file included from /opt/local/include/mosml/mlvalues.h:5,
                 from mpq.c:8:
/opt/local/include/mosml/config.h:23:36: error: expected declaration specifiers or '...' before '(' token
   23 | #define bcopy(src,dst,len) memmove((dst), (src), (len))
      |                                    ^
/opt/local/include/mosml/config.h:23:43: error: expected declaration specifiers or '...' before '(' token
   23 | #define bcopy(src,dst,len) memmove((dst), (src), (len))
      |                                           ^
/opt/local/include/mosml/config.h:23:50: error: expected declaration specifiers or '...' before '(' token
   23 | #define bcopy(src,dst,len) memmove((dst), (src), (len))
      |                                                  ^
make[1]: *** [mpq.o] Error 1
make[1]: Leaving directory `/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_lang_mosml/mosml-dynlibs/work/mosml-13c581aec46eea134e478f2e2b6456278e36ecce/src/dynlibs/mpq'

@barracuda156
Copy link
Author

For now, I have dropped the change from mpq.c. It leaves the bug there, but since adding header creates a conflict, something else should be done.

Other ones work neatly.

@barracuda156
Copy link
Author

@kfl Could you review this, please?

@kfl kfl self-assigned this Nov 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants