J9.6 Installing Problem on Debian 13

16 views
Skip to first unread message

Tony Poole

unread,
Oct 5, 2025, 4:44:50 PM (10 days ago) Oct 5
to fo...@jsoftware.com
I've recently upgraded one of my systems to Debian 13.  When I try to install J9.6 on it, I get the following error:

Load library /home/tony/j9.6/bin/libj.so failed: /home/tony/j9.6/bin/libj.so: cannot enable executable stack as shared object requires: Invalid argument

This is in response to execution of jconsole.sh.  The same installation media works fine on a Debian 12 system.  

The explanation I found for this is:

The "cannot enable executable stack as shared object requires: Invalid argument" error on Debian 13 usually occurs when a program or shared library attempts to execute code on the stack, which is restricted by modern Linux security features like Exec-Shield. Debian 13, like other recent distributions, enforces this by default to prevent stack smashing attacks. 

Is this something the installation team is aware of and will be addressing?  There are things I can try on my system, but I wanted to check with the group before proceeding.

Thanks.  
--
"Never put off till tomorrow what may be done day after tomorrow just as well."     Mark Twain

Norman Drinkwater

unread,
Oct 5, 2025, 5:28:32 PM (10 days ago) Oct 5
to fo...@jsoftware.com
This issue is fixed in 9.6.4, which should be released soon.

To unsubscribe from this group and stop receiving emails from it, send an email to forum+un...@jsoftware.com.

Tony Poole

unread,
Oct 5, 2025, 5:52:51 PM (10 days ago) Oct 5
to fo...@jsoftware.com
Got it.  Thanks.

Remington Furman

unread,
Oct 5, 2025, 10:14:54 PM (10 days ago) Oct 5
to fo...@jsoftware.com

In the meantime you can modify the console.sh script to tell glibc not to care about the executable stack.  Or export it as an environment variable.

#!/bin/bash
GLIBC_TUNABLES=glibc.rtld.execstack=2 $(dirname "$0")/bin/jconsole "$@"

It's a result of this commit to glibc:
https://sourceware.org/git/?p=glibc.git;a=commit;h=12a497c716f0a06be5946cabb8c3ec22a079771e

Docs:
https://sourceware.org/glibc/manual/2.42/html_node/Dynamic-Linking-Tunables.html#index-glibc_002ertld_002eexecstack

This bit a few different projects, and I think I learned of this workaround from the Julia forum here:
https://github.com/JuliaLang/julia/issues/57250#issuecomment-2834911167

-Remington

Remington Furman

unread,
Oct 5, 2025, 10:38:56 PM (10 days ago) Oct 5
to fo...@jsoftware.com

Correction: it was this commit that caused dlopen() to fail when loading a shared library that wants to execute from the stack when the calling program isn't already configured to do so.
https://sourceware.org/git/?p=glibc.git;a=commit;h=0ca8785a28

The commit I linked to earlier gave users the option to revert to the old behavior.

-Remington

Tony Poole

unread,
Oct 6, 2025, 9:29:12 AM (9 days ago) Oct 6
to fo...@jsoftware.com
Thanks for the workaround.  I'm in business now!  Also, thanks for links to details on the broader issue here.

Take care and be well.
Reply all
Reply to author
Forward
0 new messages