-
-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MacOS support #145
base: master
Are you sure you want to change the base?
MacOS support #145
Conversation
Related to microsoft/vcpkg#31203 |
Thanks for your addition, MacOSX is not a supported platform for the full stack, maybe it compiles by accident, but not tested at all, ACE/TAO are also not tested on MacOSX. |
Hmm... Then we could either add a message notifying the user that MacOS is not a supported platform or just leave this PR open, so that people who want to build it for MacOS, may patch it themselves. I might add Android and IOS as well, but for that, I want to refactor the vcpkg port to support cross-compiling and support the tools (ridlc, brix11, ..., ...) properly. I think it would take the pain out of building ACE/TAO and axcioma. brix11 already simplifies the process a whole lot, but something like vcpkg goes one step further. |
Okay, I ran the tests. At least on an arm64 Mac, there are several failed tests, which, as far as I remember, was not the case on a x64_86 machine a few years ago. I will take care of them over time. |
See https://www.taox11.org/scoreboard.html and https://www.axcioma.org/scoreboard.html for the platforms we officially support, on the supported platforms all TAOX11 unit tests do succeed. For ARM64 mac also cross platform testing is something that must be done, I have read multiple times that people had problems with interoperability between ARM64 mac and Intel. |
@@ -24,6 +24,8 @@ def self.get_cpu_cores | |||
unless @cpu_cores | |||
if mswin? | |||
@cpu_cores = (ENV['NUMBER_OF_PROCESSORS'] || 1).to_i | |||
elsif File.exist?('/usr/sbin/sysctl') | |||
@cpu_cores = (`/usr/sbin/sysctl -n hw.ncpu` rescue '1').strip.to_i |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/usr/sbin/sysctl
does also exist on my OpenSuSE linux system, but fails with sysctl: cannot stat /proc/sys/hw/ncpu: No such file or directory
. This change breaks my Linux multi cpu support, maybe check first if you are on a Mac and second if the sysctl exists?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It also fails inside a docker linux build image!
root@45565f35112e:/axcioma# irb
irb(main):001:0> (`/usr/sbin/sysctl -n hw.ncpux` rescue 1).strip.to_i
sysctl: cannot stat /proc/sys/hw/ncpux: No such file or directory
=> 0
irb(main):002:0>
This rescue 1
is obscure, or not?
dll_dir: 'lib', | ||
library_path_var: 'DYLD_LIBRARY_PATH', | ||
test_configs: %w{MACOSX}, | ||
prj_type: BRIX11::Project.handler('gnumake').default_prj_type |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we don’t have a MACOSX test config anywhere
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See comments
For ARM mac there is a PR on ACE/TAO master that seems to be pretty important, see DOCGroup/ACE_TAO#2142 |
First, thank you for this patch!I have tested it on my iMAC(i386): But it Compiles only with I was wondering about the empty
|
bash-5.2$ builddriver bin/brix11 make
builddriver executing: 'bin/brix11 make'
Compilation SUCCEED in 379.300847 seconds
Number of warnings: 16
WarningErrorEntry(path='WARNING: (g++) file: /Users/clausklein/Workspace/cpp/axcioma/ACE/ACE/ace/OS_NS_stdlib.inl line: 265 - /Users/clausklein/Workspace/cpp/axcioma/ACE/ACE/ace/OS_NS_stdlib.inl', lineno='265', severity='warning', message="'mktemp' is deprecated: This function is provided for compatibility reasons only. Due to security concerns inherent in the design of mktemp(3), it is highly recommended that you use mkstemp(3) instead. [-Wdeprecated-declarations]", column='12')
WarningErrorEntry(path='INFO: (g++) file: /Users/clausklein/Workspace/cpp/axcioma/ACE/ACE/ace/OS_NS_stdlib.inl', lineno='265', severity='warning', message="'mktemp' is deprecated: This function is provided for compatibility reasons only. Due to security concerns inherent in the design of mktemp(3), it is highly recommended that you use mkstemp(3) instead. [-Wdeprecated-declarations]", column=None)
WarningErrorEntry(path='INFO: (g++) file: i/Users/clausklein/Workspace/cpp/axcioma/ACE/ACE/ace/OS_NS_stdio.inle - l1045riecom', lineno='15', severity='warning', message="m'vsprintf' is deprecated: This function is provided for compatibility reasons only. Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use vsnprintf(3) instead. [-Wdeprecated-declarations]", column=None)
WarningErrorEntry(path='110 | namespace TAOX11_../../tao/x11/WStringSeqC.h', lineno='115', severity='warning', message='nested namespace definition is a C++17 extension; define each namespace separately [-Wc++17-extensions]', column=None)
WarningErrorEntry(path='WARNING: (g++) file: ../../tao/x11/DoubleSeqC.h', lineno='115', severity='warning', message='nested namespace definition is a C++17 extension; define each namespace separately [-Wc++17-extensions]', column=None)
WarningErrorEntry(path='WARNING: (g++) file: ../../tao/x11/ServicesC.h line: 432 - ../../tao/x11/WCharSeqC.h', lineno='115', severity='warning', message='nested namespace definition is a C++17 extension; define each namespace separately [-Wc++17-extensions]', column='27')
WarningErrorEntry(path='WARNING: (g++) file: ../../tao/x11/Typecode_typesC.h line: 250 - ../../tao/x11/LongDoubleSeqC.hIn file included from', lineno='115', severity='warning', message='/Users/clausklein/Workspace/cpp/axcioma/taox11/tao/x11/orb_registry.cpp :15:', column='27')
WarningErrorEntry(path='WARNING: (g++) file: ../../tao/x11/StringSeqC.h line: 110 - 182 | ../../tao/x11/BooleanSeqC.h', lineno='110', severity='warning', message='nested namespace definition is a C++17 extension; define each namespace separately [-Wc++17-extensions]', column='27')
WarningErrorEntry(path='WARNING: (g++) file: ../../tao/x11/CurrentC.h line: 186 - ../../tao/x11/BooleanSeqC.h', lineno='115', severity='warning', message='nested namespace definition is a C++17 extension; define each namespace separately [-Wc++17-extensions]', column='27')
WarningErrorEntry(path='WARNING: (g++) file: ../../tao/x11/TimeBaseC.h', lineno='312', severity='warning', message='nested namespace definition is a C++17 extension; define each namespace separately [-Wc++17-extensions]', column='27')
WarningErrorEntry(path='WARNING: (g++) file: ../../../tao/x11/Typecode_typesC.h line: 250 - ../../../tao/x11/Messaging_SyncScopeC.h', lineno='84', severity='warning', message='nested namespace definition is a C++17 extension; define each namespace separately [-Wc++17-extensions]', column='27')
WarningErrorEntry(path='WARNING: (g++) file: ../../../tao/x11/ShortSeqC.h', lineno='58', severity='warning', message='nested namespace definition is a C++17 extension; define each namespace separately [-Wc++17-extensions]', column=None)
WarningErrorEntry(path='WARNING: (g++) file: ../../../tao/x11/anytypecode/VisibilityC.h line: 65 - ../../../tao/x11/OctetSeqC.h', lineno='115', severity='warning', message='nested namespace definition is a C++17 extension; define each namespace separately [-Wc++17-extensions]', column='27')
WarningErrorEntry(path='914 | namespac../../../tao/x11/portable_server/RequestProcessingPolicyC.he TA:OX29811_N', lineno='27', severity='warning', message='nested namespace definition is a C++17 extension; define each namespace separately [-Wc++17-extensions]', column=None)
WarningErrorEntry(path='../../../tao/x11/DoubleSeqC.h', lineno='115', severity='warning', message='nested namespace definition is a C++17 extension; define each namespace separately [-Wc++17-extensions]', column=None)
WarningErrorEntry(path='WARNING: (g++) file: ../../../tao/x11/pi/PIForwardRequestC.h line: 162 - ../../../tao/x11/ServicesC.h', lineno='367', severity='warning', message='nested namespace definition is a C++17 extension; define each namespace separately [-Wc++17-extensions]', column='27')
For full log, please open: /var/folders/wb/ckvxxgls5db7qyhqq4y5_l1c0000gq/T/build-vn9vjl32.log
bash-5.2$ |
With the last
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See comments
I have only tested it on an arm64 based Mac.