Skip to content

Problem with compiling ifxpy.c #86

@hzokovic

Description

@hzokovic

When I run
python setup.py build
I got theses errors:
multiple times this one

ifxpyc.c: In function ‘_python_IfxPy_free_conn_struct’:
ifxpyc.c:214:34: error: assignment to ‘storeSessionID *’ from incompatible pointer type ‘struct storeSessionID *’ [-Wincompatible-pointer-types]
  214 |                         tempNode = tempNode->next;
      |                                  ^

and these two errors as well

ifxpyc.c: In function ‘_python_IfxPy_bind_fetch_helper’:
ifxpyc.c:9373:69: error: passing argument 1 of ‘PyBytes_FromStringAndSize’ from incompatible pointer type [-Wincompatible-pointer-types]
 9373 |                                   value = PyBytes_FromStringAndSize(wout_ptr, out_length);
      |                                                                     ^~~~~~~~
      |                                                                     |
      |                                                                     SQLWCHAR * {aka int *}
In file included from /usr/local/include/python3.7m/Python.h:98:
/usr/local/include/python3.7m/bytesobject.h:51:50: note: expected ‘const char *’ but argument is of type ‘SQLWCHAR *’ {aka ‘int *’}
   51 | PyAPI_FUNC(PyObject *) PyBytes_FromStringAndSize(const char *, Py_ssize_t);
      |                                                  ^~~~~~~~~~~~

#################

ifxpyc.c: In function ‘IfxPy_execute_many’:
ifxpyc.c:11431:52: error: passing argument 4 of ‘SQLDescribeParam’ from incompatible pointer type [-Wincompatible-pointer-types]
11431 |                     (SQLSMALLINT*)(data_type + i), &precision, (SQLSMALLINT*)&scale,
      |                                                    ^~~~~~~~~~
      |                                                    |
      |                                                    SQLUINTEGER * {aka unsigned int *}
In file included from /home/informix/icsdk.4.5.12.12/incl/cli/infxsql.h:1123,
                 from /home/informix/icsdk.4.5.12.12/incl/cli/infxcli.h:33,
                 from ifxpyc.h:41,
                 from ifxpyc.c:43:
/home/informix/icsdk.4.5.12.12/incl/cli/sqlext.h:1832:28: note: expected ‘SQLULEN *’ {aka ‘long long unsigned int *’} but argument is of type ‘SQLUINTEGER *’ {aka ‘unsigned int *’}
 1832 |     SQLULEN               *pcbParamDef,
      |     ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~

So this is diff file ifxpy-orig.c and my ifxpy.c which compiles succesfully

78c78
< typedef struct storeSessionID {
---
> typedef struct {
9373c9373
<                                   value = PyBytes_FromStringAndSize((const char *)wout_ptr, out_length);
---
>                                   value = PyBytes_FromStringAndSize(wout_ptr, out_length);
11382c11382
<     SQLULEN precision;
---
>     SQLUINTEGER precision;

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions