Skip to content

Instantly share code, notes, and snippets.

@jclausen
Last active December 26, 2015 08:19
Show Gist options
  • Save jclausen/7121183 to your computer and use it in GitHub Desktop.
Save jclausen/7121183 to your computer and use it in GitHub Desktop.
Recompiling mod_jk.so for OSX Mavericks
1) Updade XCode via App Store:
2) Install command line tools:
xcode-select --install (click install on prompt)
3) Create Missing symlink
sudo ln -s /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.9.xctoolchain
(UPDATED via http://www.n42designs.com/blog/index.cfm/2013/10/23/Running-ColdFusion-10-on-OS-X-Mavericks)
4) http://helpx.adobe.com/coldfusion/kb/rhel-connector-configuration/_jcr_content/main-pars/download_1/file.res/connector-source.zip
Replace in /native/common/jk_map.c:
strcpy(buf, rc);
with:
memmove(buf, rc, len + 1);
cd ~/Desktop/connector-source/native
./configure CFLAGS='-arch x86_64' APXSLDFLAGS='-arch x86_64' --with-apxs=/usr/sbin/apxs
make
sudo make install
For Coldfusion 10 connector only:
5) Copy created mod_jk.so:
cp /usr/libexec/apache2/mod_jk.so /Applications/Coldfusion10/config/wsconfig/1/mod_jk.so
@kwispel
Copy link

kwispel commented Oct 23, 2013

Interesting. It died on ./configure CFLAGS='-arch x86_64' APXSLDFLAGS='-arch x86_64' --with-apxs=/usr/sbin/apxs for me complaining "error could not detect a 32-bit integer type". I am not a Dec 2012 macbook

@JonSnippets
Copy link

Having the same issue as kwispel, anyone else see this? Anyone find a solution?

@niksaini
Copy link

You'll need to install the command line tools again

Update/install xcode.
run xcode-select --install from the command line to reinstall the command line tools.

@jclausen
Copy link
Author

See updated instructions here (first comment) to compile the correct version of mod_jk: http://www.n42designs.com/blog/index.cfm/2013/10/23/Running-ColdFusion-10-on-OS-X-Mavericks#.Um1We5FGGaE

Copy link

ghost commented Nov 10, 2013

Thanks, worked perfectly for me for use with Railo. Great.

@whutchtwo
Copy link

Code change was not 100%. Caused jboss to hang on me. These stops worked.

Download latest Tomcat Connectors source from http://tomcat.apache.org/download-connectors.cgi

Per https://issues.apache.org/bugzilla/show_bug.cgi?id=55696 change the method below in ./native/common/jk_maps.c to what you see here:

int jk_map_get_int(jk_map_t *m, const char *name, int def)
{
const char *rc;
int int_res;

rc = jk_map_get_string(m, name, NULL);

if(NULL == rc) {
    int_res = def;
} else {
    size_t len = strlen(rc);
    int multit = 1;

    if (len) {
        char buf[100];
        char *lastchar;
         strncpy(buf, rc, 100);
        lastchar = buf + len - 1;
        if ('m' == *lastchar || 'M' == *lastchar) {
            *lastchar = '\0';
            multit = 1024 * 1024;
        }
        else if ('k' == *lastchar || 'K' == *lastchar) {
            *lastchar = '\0';
            multit = 1024;
        }
        int_res = multit * atoi(buf);
    }
    else
        int_res = def;
 }
return int_res;

}
Install command line tools

xcode-select --install

Create missing symlink

sudo ln -s /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.9.xctoolchain

cd ./native

./configure CFLAGS='-arch x86_64' APXSLDFLAGS='-arch x86_64' --with-apxs=/usr/sbin/apxs

chmod 755 scripts/build/instdso.sh

make

sudo make install

@demisx
Copy link

demisx commented Sep 16, 2014

This was my experience compiling mod_jk on Mac OS Mavericks: http://demisx.github.io/tomcat/connector/2014/02/06/install-mod_jk-mac-os-x.html. Hope it helps.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment