I don't think our patches will be mutually exclusive. If I understand
you correctly, you are trying to make x32 auto-detectable, hence make
it work "out of the box". I like the idea and I also tried x32
auto-detection in the past, but it seemed to me that the
infrastructure does not support it very well. I also don't think that
enough people use x32 to justify putting many working hours into it.

My approach of this patch on the other hand is much more general in
nature: I am trying to support any lib<qual>, as defined in [1]. This
allows cmake to be used in environments which have more specific
requirements. Hence it overwrites the default heuristic, which is
usually wrong in such environments. The x32 ABI is just one scenario
where you could apply this overwrite.

[1] http://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch03s10.html

On Sun, Feb 26, 2017 at 6:38 PM, Steven Newbury <st...@snewbury.org.uk> wrote:
> On Sun, 2017-02-26 at 16:25 +0000, Steven Newbury wrote:
>> On Sun, 2017-02-26 at 16:42 +0100, Christian Schmidbauer wrote:
>> > Hallo,
>> >
>> > I provided a v2 of my previous patch to the ML a few hours back
>> > (see
>> > [1]), you can give it a try. I was successfully able to build llvm
>> > on
>> > Gentoo, by adding the following lines to
>> > /usr/portage/eclass/cmake-utils.eclass
>> >
>> > --- aaa/cmake-utils.eclass      2017-02-07 06:44:59.000000000 +0100
>> > +++ bbb/cmake-utils.eclass      2017-02-26 16:37:53.176993623 +0100
>> > @@ -607,6 +607,7 @@
>> >         cat > "${common_config}" <<- _EOF_ || die
>> >                 SET (CMAKE_GENTOO_BUILD ON CACHE BOOL "Indicate
>> > Gentoo
>> > package build")
>> >                 SET (LIB_SUFFIX ${libdir/lib} CACHE STRING "library
>> > path suffix" FORCE)
>> > +               SET (CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX
>> > "${libdir/lib}" CACHE STRING "")
>> >                 SET (CMAKE_INSTALL_LIBDIR ${libdir} CACHE PATH
>> > "Output
>> > directory for libraries")
>> >         _EOF_
>> >         [[ "${NOCOLOR}" = true || "${NOCOLOR}" = yes ]] && echo
>> > 'SET
>> > (CMAKE_COLOR_MAKEFILE OFF CACHE BOOL "pretty colors during make"
>> > FORCE)' >> "${common_config}"
>> >
>>
>> Hallo Chris,
>>
>> I've made some progress with run-time x32 detection in cmake.  I'll
>> see
>> how that goes, if I can't get it working (which I'm testing now) I'll
>> use your approach.
>
> I have to say, the whole idea behind having either 32-bit or 64-bit
> library paths determined by the size of a single type, this way seems a
> little flawed to me.  Linux x32 (Linux ELF x86-64-32) isn't the only
> 32-bit userland on 64-bit kernel.  MIPS does the same and there's also
> ILP32 for aarch64 (ARM64-32).  Not to mention any other ABI variants.
>
> Previous code used CMAKE_INTERNAL_PLATFORM_ABI at least for MIPS, this
> just makes much more sense to me, and it's the approach I've used in my
> updated x32 cmake patch to determine at run-time if we're using x32-
> abi.
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake-developers

Reply via email to