Tim created NETBEANS-6391:
-----------------------------

             Summary: Netbeans 12.5/12.6 missing ARM based binaries for MacOSX 
terminal support in Netbeans
                 Key: NETBEANS-6391
                 URL: https://issues.apache.org/jira/browse/NETBEANS-6391
             Project: NetBeans
          Issue Type: Bug
         Environment: java -version

{noformat}
openjdk version "17.0.1" 2021-10-19
OpenJDK Runtime Environment Temurin-17.0.1+12 (build 17.0.1+12)
OpenJDK 64-Bit Server VM Temurin-17.0.1+12 (build 17.0.1+12, mixed mode)
{noformat}

Mac OS Montery M1 Pro Max MacBook Pro 

            Reporter: Tim


When using the “Open in Terminal” option I get nothing but a blank terminal 
window when running on an M! Silicon Pro MacBook Pro using native arm based JDK

After debugging the source code of Netbeans itself it comes down to a missing 
resource in the “_netbeans/ide/bin/nativeexecution/_“ folder for 
“_MacOSX-unknown_64/pty_”

This is because the host information cannot figure out the *CPUFAMILY* and is 
returning “*UNKNOWN*”

Things I tried:

1. I’m a Java developer and don’t usually compile C++ but going into the 
“_netbeans/ide/dlight.nativeexecution/tools_” directory and manually running 
the ‘_buildall.sh_” script compiles almost all the files needed.

➜  tools git:(master) ✗ chmod +x ./buildall.sh
➜  tools git:(master) ✗ . ./buildall.sh


{noformat}
Platform: MacOSX-arm
Darwin mars.fios-router.home 21.2.0 Darwin Kernel Version 21.2.0: Sun Nov 28 
20:28:41 PST 2021; root:xnu-8019.61.5~1/RELEASE_ARM64_T6000 arm64
rm -rf ../release/bin/nativeexecution/MacOSX-arm 
../release/bin/nativeexecution/MacOSX-arm
Platform: MacOSX-arm
Darwin mars.fios-router.home 21.2.0 Darwin Kernel Version 21.2.0: Sun Nov 28 
20:28:41 PST 2021; root:xnu-8019.61.5~1/RELEASE_ARM64_T6000 arm64
Platform: MacOSX-arm
Darwin mars.fios-router.home 21.2.0 Darwin Kernel Version 21.2.0: Sun Nov 28 
20:28:41 PST 2021; root:xnu-8019.61.5~1/RELEASE_ARM64_T6000 arm64
gcc  -s -O2  -o ../release/bin/nativeexecution/MacOSX-arm/privp privp.c
ld: warning: option -s is obsolete and being ignored
gcc  -s -O2  -o ../release/bin/nativeexecution/MacOSX-arm/process_start 
process_start.c
ld: warning: option -s is obsolete and being ignored
gcc  -s -O2  -o ../release/bin/nativeexecution/MacOSX-arm/pty_open pty_open.c
ld: warning: option -s is obsolete and being ignored
gcc  -s -O2   -s  -o ../release/bin/nativeexecution/MacOSX-arm/sigqueue 
sigqueue.c
sigqueue.c:53:12: error: implicit declaration of function 'sigqueue' is invalid 
in C99 [-Werror,-Wimplicit-function-declaration]
    return sigqueue(pid, signo, value);
           ^
1 error generated.
make: *** [sigqueue] Error 1
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools
Platform: MacOSX-arm
Darwin mars.fios-router.home 21.2.0 Darwin Kernel Version 21.2.0: Sun Nov 28 
20:28:41 PST 2021; root:xnu-8019.61.5~1/RELEASE_ARM64_T6000 arm64
rm -f -r 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/pty/build/MacOSX-arm
 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/pty/dist/MacOSX-arm
Platform: MacOSX-arm
Darwin mars.fios-router.home 21.2.0 Darwin Kernel Version 21.2.0: Sun Nov 28 
20:28:41 PST 2021; root:xnu-8019.61.5~1/RELEASE_ARM64_T6000 arm64
rm -f -r 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/pty/build
rm -f -r 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/pty/dist
rm -f .make.state*
Platform: MacOSX-arm
Darwin mars.fios-router.home 21.2.0 Darwin Kernel Version 21.2.0: Sun Nov 28 
20:28:41 PST 2021; root:xnu-8019.61.5~1/RELEASE_ARM64_T6000 arm64
mkdir -p 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/pty/dist/MacOSX-arm
mkdir -p 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/pty/build/MacOSX-arm/src
gcc  -s -O2   -c -o 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/pty/build/MacOSX-arm/src/env.o
 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/pty/src/env.c
clang: warning: argument unused during compilation: '-s' 
[-Wunused-command-line-argument]
gcc  -s -O2   -c -o 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/pty/build/MacOSX-arm/src/error.o
 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/pty/src/error.c
clang: warning: argument unused during compilation: '-s' 
[-Wunused-command-line-argument]
gcc  -s -O2   -c -o 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/pty/build/MacOSX-arm/src/loop.o
 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/pty/src/loop.c
clang: warning: argument unused during compilation: '-s' 
[-Wunused-command-line-argument]
gcc  -s -O2   -c -o 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/pty/build/MacOSX-arm/src/options.o
 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/pty/src/options.c
clang: warning: argument unused during compilation: '-s' 
[-Wunused-command-line-argument]
gcc  -s -O2   -c -o 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/pty/build/MacOSX-arm/src/pty_fork.o
 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/pty/src/pty_fork.c
clang: warning: argument unused during compilation: '-s' 
[-Wunused-command-line-argument]
gcc  -s -O2   -c -o 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/pty/build/MacOSX-arm/src/pty.o
 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/pty/src/pty.c
clang: warning: argument unused during compilation: '-s' 
[-Wunused-command-line-argument]
gcc  -s -O2   -c -o 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/pty/build/MacOSX-arm/src/util.o
 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/pty/src/util.c
clang: warning: argument unused during compilation: '-s' 
[-Wunused-command-line-argument]
--------------------------------------------------------------------------------
gcc  -s -O2   -s  -o 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/pty/dist/MacOSX-arm/pty
 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/pty/build/MacOSX-arm/src/env.o
 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/pty/build/MacOSX-arm/src/error.o
 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/pty/build/MacOSX-arm/src/loop.o
 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/pty/build/MacOSX-arm/src/options.o
 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/pty/build/MacOSX-arm/src/pty_fork.o
 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/pty/build/MacOSX-arm/src/pty.o
 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/pty/build/MacOSX-arm/src/util.o
ld: warning: option -s is obsolete and being ignored
ld: warning: option -s is obsolete and being ignored
================================================================================
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/pty/dist/MacOSX-arm/pty

-rwxr-xr-x  1 tmulle  staff  53520 Jan 14 13:25
Mach-O 64-bit executable arm64
================================================================================
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools
Platform: MacOSX-arm
Darwin mars.fios-router.home 21.2.0 Darwin Kernel Version 21.2.0: Sun Nov 28 
20:28:41 PST 2021; root:xnu-8019.61.5~1/RELEASE_ARM64_T6000 arm64
expr: syntax error
rm -f -r 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/killall/build/MacOSX-arm
 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/killall/dist/MacOSX-arm
Platform: MacOSX-arm
Darwin mars.fios-router.home 21.2.0 Darwin Kernel Version 21.2.0: Sun Nov 28 
20:28:41 PST 2021; root:xnu-8019.61.5~1/RELEASE_ARM64_T6000 arm64
rm -f -r 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/killall/build
rm -f -r 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/killall/dist
Platform: MacOSX-arm
Darwin mars.fios-router.home 21.2.0 Darwin Kernel Version 21.2.0: Sun Nov 28 
20:28:41 PST 2021; root:xnu-8019.61.5~1/RELEASE_ARM64_T6000 arm64
expr: syntax error
mkdir -p 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/killall/dist/MacOSX-arm
mkdir -p 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/killall/build/MacOSX-arm/src
mkdir -p 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/killall/build/MacOSX-arm/src/linux
mkdir -p 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/killall/build/MacOSX-arm/src/solaris
mkdir -p 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/killall/build/MacOSX-arm/src/macosx
gcc  -s -O2   -c -o 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/killall/build/MacOSX-arm/src/error.o
 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/killall/src/error.c
clang: warning: argument unused during compilation: '-s' 
[-Wunused-command-line-argument]
gcc  -s -O2   -c -o 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/killall/build/MacOSX-arm/src/killall.o
 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/killall/src/killall.c
clang: warning: argument unused during compilation: '-s' 
[-Wunused-command-line-argument]
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/killall/src/killall.c:187:13:
 warning: enumeration value 'S_SID' not handled in switch [-Wswitch]
    switch (scope) {
            ^
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/killall/src/killall.c:187:13:
 note: add missing switch cases
    switch (scope) {
            ^
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/killall/src/killall.c:199:1:
 warning: non-void function does not return a value in all control paths 
[-Wreturn-type]
}
^
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/killall/src/killall.c:260:16:
 error: implicit declaration of function 'sigqueue' is invalid in C99 
[-Werror,-Wimplicit-function-declaration]
        return sigqueue(params.id, params.sig, value);
               ^
2 warnings and 1 error generated.
make: *** 
[/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/killall/build/MacOSX-arm/src/killall.o]
 Error 1
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools
Platform: MacOSX-arm
Darwin mars.fios-router.home 21.2.0 Darwin Kernel Version 21.2.0: Sun Nov 28 
20:28:41 PST 2021; root:xnu-8019.61.5~1/RELEASE_ARM64_T6000 arm64
rm -f -r 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/unbuffer/build/MacOSX-arm
 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/unbuffer/dist/MacOSX-arm
Platform: MacOSX-arm
Darwin mars.fios-router.home 21.2.0 Darwin Kernel Version 21.2.0: Sun Nov 28 
20:28:41 PST 2021; root:xnu-8019.61.5~1/RELEASE_ARM64_T6000 arm64
rm -f -r 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/unbuffer/build
rm -f -r 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/unbuffer/dist
rm -f .make.state*
Platform: MacOSX-arm
Darwin mars.fios-router.home 21.2.0 Darwin Kernel Version 21.2.0: Sun Nov 28 
20:28:41 PST 2021; root:xnu-8019.61.5~1/RELEASE_ARM64_T6000 arm64
Makefile:85: warning: overriding commands for target 
`/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/unbuffer/dist/MacOSX-arm'
Makefile:81: warning: ignoring old commands for target 
`/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/unbuffer/dist/MacOSX-arm'
make: Circular 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/unbuffer/dist/MacOSX-arm
 <- 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/unbuffer/dist/MacOSX-arm
 dependency dropped.
mkdir -p 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/unbuffer/build/MacOSX-arm/src
gcc  -s -O2   -c -o 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/unbuffer/build/MacOSX-arm/src/unbuffer.o
 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/unbuffer/src/unbuffer.c
clang: warning: argument unused during compilation: '-s' 
[-Wunused-command-line-argument]
mkdir -p 
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/unbuffer/dist/MacOSX-arm
================================================================================
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools/unbuffer/dist/MacOSX-arm/

total 0
drwxr-xr-x  2 tmulle  staff  64 Jan 14 13:25 .
drwxr-xr-x  3 tmulle  staff  96 Jan 14 13:25 ..
directory
================================================================================
/Users/tmulle/Development/Projects/netbeans/ide/dlight.nativeexecution/tools
================================================
buildall:               directory
buildall/pty:           Mach-O 64-bit executable arm64
buildall/pty_open:      Mach-O 64-bit executable arm64
buildall/process_start: Mach-O 64-bit executable arm64
buildall/privp:         Mach-O 64-bit executable arm64
{noformat}


If I then make a directory called 
“_netbeans/ide/bin/nativeexecution/MacOSX-arm_64_” and copy the “_buildall/_“ 
output into that directory the terminal works and I they are running *natively* 
(Not Rosetta).

Again, this worked for me but obviously someone with more knowledge will know 
how to fix this.

And yes, I know that you need a M1 Silicon Mac to build the binaries :-(

Quick Fix:

I was able to fix it temporarily with these steps but they are not ideal:

1. Changing the “_netbeans/ide/bin/nativeexecution/hostinfo.sh_” file as 
follows:

Add another check for CPUFAMILY and return ARM:

{noformat}

…
CPUFAMILY=`(echo ${CPUTYPE} | egrep "^i|x86_64|athlon|Intel" >/dev/null && echo 
x86) || echo ${CPUTYPE}`
if [ "${CPUFAMILY}" = "sparc64" ]; then
   CPUFAMILY="sparc"
fi

# New check if ARM64 then return ARM so Java code will stop returning “UNKNOWN”
if [ "${CPUFAMILY}" = "arm64" ]; then
   CPUFAMILY="arm"
fi
{noformat}



2. Copying the contents of “_netbeans/ide/bin/nativeexecution/MacOSX-x86_64_” 
to “_netbeans/ide/bin/nativeexecution/MacOSX-arm_64_”


This works, however, any terminal window is now using *Rosetta* and _NOT native 
ARM_ code

 



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@netbeans.apache.org
For additional commands, e-mail: commits-h...@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to