summaryrefslogtreecommitdiffstats
path: root/Modules/Platform/AIX.cmake
Commit message (Collapse)AuthorAgeFilesLines
* AIX: Create import library for executables with exportsBrad King2019-07-161-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On AIX, plugins meant to be loaded into executables via `dlopen` must be linked with access to a list of symbols exported from the executable in order to use them (when not using runtime linking). The AIX linker supports specifying this list as an "import file" passed on the command line either via the `-bI:...` option or (with a leading `#! .` line) as a normal input file like any other library file. The linker import file plays the same role on AIX as import libraries do on Windows. Teach CMake to enable its import library abstraction on AIX for executables with the `ENABLE_EXPORTS` target property set. Teach our internal `ExportImportList` script to optionally generate a leading `#! .` line at the top of the generated export/import list. Update our rule for linking an executable with exports to generate a public-facing "import library" implemented as an AIX linker import file. With this approach, our existing infrastructure for handling import libraries on Windows will now work for AIX linker import files too: * Plugins that link to their executable's symbols will be automatically linked using the import file on the command line. * The executable's import file will be (optionally) installed and exported for use in linking externally-built plugins. This will allow executables and their plugins to build even if we later turn off runtime linking. Issue: #19163
* AIX,HP: Allow user to override the default runtime path (libpath)Matthew Hanna2016-05-171-1/+3
| | | | | | | | | The `CMAKE_PLATFORM_REQUIRED_RUNTIME_PATH` is used by CMake to always append `-Wl,-blibpath:/usr/lib:/lib` to the link line. This is needed by default on these platforms but needs to be overridden in some use cases (e.g. an environment in which one maintains versioned shared libraries). Change our logic to set this value only if it not already set by the user, project, or toolchain file.
* Remove CMake-language block-end command argumentsKitware Robot2012-08-131-1/+1
| | | | | | | | | | | | | | | | | Ancient versions of CMake required else(), endif(), and similar block termination commands to have arguments matching the command starting the block. This is no longer the preferred style. Run the following shell code: for c in else endif endforeach endfunction endmacro endwhile; do echo 's/\b'"$c"'\(\s*\)(.\+)/'"$c"'\1()/' done >convert.sed && git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' | egrep -z -v '^(Utilities/cm|Source/kwsys/)' | egrep -z -v 'Tests/CMakeTests/While-Endwhile-' | xargs -0 sed -i -f convert.sed && rm convert.sed
* Convert CMake-language commands to lower caseKitware Robot2012-08-131-10/+10
| | | | | | | | | | | | | | | | | Ancient CMake versions required upper-case commands. Later command names became case-insensitive. Now the preferred style is lower-case. Run the following shell code: cmake --help-command-list | grep -v "cmake version" | while read c; do echo 's/\b'"$(echo $c | tr '[:lower:]' '[:upper:]')"'\(\s*\)(/'"$c"'\1(/g' done >convert.sed && git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' | egrep -z -v '^(Utilities/cm|Source/kwsys/)' | xargs -0 sed -i -f convert.sed && rm convert.sed
* Move RPATH flags to AIX per-compiler information filesBrad King2011-03-021-2/+0
| | | | | | Move RPATH flags out of Platform/AIX.cmake into platform-specific compiler information files Platform/AIX-XL and Platform/AIX-GNU. The flags need to be set for each compiler of each language.
* Split GNU compiler information filesBrad King2009-12-021-10/+0
| | | | | | | | | | | | | | This moves GNU compiler flags into new-style modules Compiler/GNU-<lang>.cmake Platform/<os>-GNU-<lang>.cmake We use language-independent helper modules Compiler/GNU.cmake Platform/<os>-GNU.cmake to define macros consolidating the information.
* Split XL compiler information filesBrad King2009-09-301-31/+0
| | | | | | This moves platform-independent XL compiler flags into separate "Compiler/XL-<lang>.cmake" modules. Platform-specific flags go in "Platform/<os>-XL-<lang>.cmake" modules.
* BUG: Added TARGET_ARCHIVES_MAY_BE_SHARED_LIBS global property to help ↵Brad King2008-02-041-0/+3
| | | | compute proper rpath information on AIX when shared libraries have names like "libfoo.a".
* ENH: Implement linking with paths to library files instead of -L and -l ↵Brad King2008-01-221-6/+14
| | | | | | | | | | | | | | | | | separation. See bug #3832 - This is purely an implementation improvement. No interface has changed. - Create cmComputeLinkInformation class - Move and re-implement logic from: cmLocalGenerator::ComputeLinkInformation cmOrderLinkDirectories - Link libraries to targets with their full path (if it is known) - Dirs specified with link_directories command still added with -L - Make link type specific to library names without paths (name libfoo.a without path becomes -Wl,-Bstatic -lfoo) - Make directory ordering specific to a runtime path computation feature (look for conflicting SONAMEs instead of library names) - Implement proper rpath support on HP-UX and AIX.
* ENH: Create COMPILE_DEFINITIONS property for targets and source files. ↵Brad King2008-01-141-5/+5
| | | | Create <config>_COMPILE_DEFINITIONS property as per-configuration version. Add Preprocess test to test the feature. Document limitations on Xcode and VS6 generators.
* BUG: also include UnixPaths.cmake on these platforms, this also sets UNIX to 1Alexander Neundorf2007-08-101-0/+2
| | | | Alex
* ENH: force c++ when building c++ objectsBill Hoffman2007-02-211-0/+2
|
* ENH: disable static shared stuff on AIX, see commentBill Hoffman2006-10-031-4/+9
|
* ENH: Enabling link type selection flags for this platform. See bug#1644 for ↵Brad King2006-09-151-0/+9
| | | | details.
* ENH: Enabling preprocessed source and asembly source generation rules on AIX ↵Brad King2006-08-091-0/+10
| | | | compilers.
* ENH: add correct initial flags for aixBill Hoffman2006-03-091-0/+4
|
* ENH: add flags for debug release for aixBill Hoffman2005-08-291-0/+4
|
* ENH: try and fix aix xlC with gccBill Hoffman2004-11-231-0/+4
|
* ENH: try and fix aix xlC with gccBill Hoffman2004-11-231-4/+4
|
* ENH: try to fix aix with native cxx and gccBill Hoffman2004-11-231-0/+10
|
* ENH: major changes to support addition of languages from cmake modules ↵Bill Hoffman2004-09-221-1/+1
| | | | directory.
* ENH: more uniform approach to enable language, one step closer to being able ↵Bill Hoffman2004-08-261-1/+0
| | | | to enable a language without modifing cmake source code
* BUG: fix for bug 383 gcc flags are now always set if the compiler is gnuBill Hoffman2003-11-141-0/+1
|
* BUG: Need -brtl when creating shared libraries. Also added -bexpall (AIX ↵Brad King2003-05-161-2/+2
| | | | equivalent to Linux's -rdynamic) when building executables.
* clean up some c/cxx issuesBill Hoffman2003-01-021-3/+4
|
* ENH: fix shared libraries on AIXBill Hoffman2002-12-301-2/+3
|
* Complete rework of makefile generators expect troubleBill Hoffman2002-11-081-0/+9