On Thu, 2020-05-14 at 05:33 +0100, Ken Moffat via lfs-dev wrote:
> I notice that in some places people have overridden any existing
> CFLAGS when adding -fcommon. In most places, for those of us who
> care the fix is obvious (CFLAGS="$CFLAGS -fcommon"). One or two
> packages will turn out to be more painful.
>
> The first I've found is freeglut, where the book uses
> -DCMAKE_C_FLAGS=-fcommon
>
> For people without any existing CFLAGS, that does the right thing
> and respects the -O3 etc from specifying a Release build (seen by
> using 'make VERBOSE=1') but for people who have extra flags such as
> "-march=native -D_FORTIFY_SOURCE=2" those just get thrown away.
>
> I'd assumed I could add
> -DCMAKE_CFLAGS="$CFLAGS -fcommon"
>
> but if I do that, cmake tells me that CFLAGS was not referenced.
>
> In this case, I am getting the right results (testing on a gcc-9
> system) with:
>
> CFLAGS="${CFLAGS} -fcommon" \
> cmake -DCMAKE_INSTALL_PREFIX=/usr \
> -DCMAKE_BUILD_TYPE=Release \
> -DFREEGLUT_BUILD_DEMOS=OFF \
> -DFREEGLUT_BUILD_STATIC_LIBS=OFF \
> -Wno-dev ..
>
> Can I ask people to at least *consider* not trashing a user's
> specified CFLAGS ?
Sorry about that Ken. As you noted in another post, cmake semantics is
not always easy to understand. I thought that doing like that was
preserving user's CFLAGS... And for some reason I thought CFLAGS where
not passed when doing the above (CFLAGS in the environment).
Will fix the book, and add "$CFLAGS" before -fcommon at other places I
have put them.
Pierre
--
http://lists.linuxfromscratch.org/listinfo/lfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page