Export to GitHub

modwsgi - issue #317

Compile failed with Apache 1.3 and Python 2.7


Posted on Mar 10, 2014 by Massive Bird

You can see from the posted code. If you are using a system like ours (Apache 1.3 and Python 2.7), you won't get a definition for 'wsgi_set_dont_write_bytecode', but it is called anyway.

Line 9630:

if PY_MAJOR_VERSION == 2 && PY_MINOR_VERSION >= 6

{ "WSGIPy3kWarningFlag", wsgi_set_py3k_warning_flag, NULL,
    RSRC_CONF, TAKE1, "Enable/Disable Python 3.0 warnings." },
{ "WSGIDontWriteBytecode", wsgi_set_dont_write_bytecode, NULL,
    RSRC_CONF, TAKE1, "Enable/Disable writing of byte code." },

endif

Line 8174~8258:

if AP_SERVER_MAJORVERSION_NUMBER >= 2

... static const char *wsgi_set_dont_write_bytecode(cmd_parms *cmd, void *mconfig, const char *f)

Line 15727:

if PY_MAJOR_VERSION == 2 && PY_MINOR_VERSION >= 6

AP_INIT_TAKE1("WSGIPy3kWarningFlag", wsgi_set_py3k_warning_flag,
    NULL, RSRC_CONF, "Enable/Disable Python 3.0 warnings."),
AP_INIT_TAKE1("WSGIDontWriteBytecode", wsgi_set_dont_write_bytecode,
    NULL, RSRC_CONF, "Enable/Disable writing of byte code."),

endif

Error details: "/home/users/qa/automation/python/dirty-sun4/include/python2.7/pyconfig.h", line 1133: warning: macro redefined: _FILE_OFFSET_BITS "mod_wsgi.c", line 9633: undefined symbol: wsgi_set_dont_write_bytecode "mod_wsgi.c", line 9633: warning: improper pointer/integer combination: op "=" "mod_wsgi.c", line 9633: non-constant initializer: op "NAME" cc: acomp failed for mod_wsgi.c apxs:Break: Command failed with rc=2 * Error code 1 make: Fatal error: Command failed for target `mod_wsgi.so'

Temp solution: I changed Line 9630 to

if PY_MAJOR_VERSION == 2 && PY_MINOR_VERSION >= 8

then, compile passed.

Comment #1

Posted on Mar 11, 2014 by Quick Rhino

That is not technically the correct fix. More than likely the #endif after the wsgi_set_dont_write_bytecode() has to be moved above it.

Why are you still using Apache 1.3? Apache 1.3 is very very very old and is no longer supported in any way by the Apache software foundation. Apache 1.3 support has been removed for the next major version of mod_wsgi.

Comment #2

Posted on Nov 12, 2014 by Quick Rhino

Believe this was fixed at some point in 3.X branch. Support for Apache 1.3 has been dropped from 4.X so not relevant there.

Status: Fixed

Labels:
Type-Defect Priority-Medium