Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 17 Nov 2018 18:27:19 +0100
From:      =?UTF-8?Q?Fernando_Apestegu=C3=ADa?= <fernape@freebsd.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org,  svn-ports-head@freebsd.org
Subject:   Re: svn commit: r485187 - in head/cad/openvsp: . files
Message-ID:  <CAGwOe2YUhk2UB1OZ1ZBSszMjpHUV5r-o8N8n5je_9ETdQPW7xQ@mail.gmail.com>
In-Reply-To: <201811171808.wAHI8Aqk088309@repo.freebsd.org>
References:  <201811171808.wAHI8Aqk088309@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Nov 17, 2018 at 7:08 PM Fernando Apestegu=C3=ADa <fernape@freebsd.o=
rg> wrote:
>
> Author: fernape
> Date: Sat Nov 17 18:08:10 2018
> New Revision: 485187
> URL: https://svnweb.freebsd.org/changeset/ports/485187
>
> Log:
>   cad/openvsp: Unbreak port
>
>   Port was broken after last compilers updates in 11 and 12.
>   Clang is now able to compile the port but we need to patch as_callfunc_=
x86.cpp
>   unconditionally, otherwise clang complains (or dies, depending on the v=
ersion)
>   with:
>
>   this directive must appear between .cfi_startproc and .cfi_endproc dire=
ctives
>
>   Also use localbase to simplify flags handling.
>
>   Reported by:  pkg-fallout
Sorry, I should've added Approved by: mentors (implicit)

>
> Added:
>   head/cad/openvsp/files/patch-src_external_angelscript_sdk_angelscript_s=
ource_as__callfunc__x86.cpp
>      - copied unchanged from r485186, head/cad/openvsp/files/extra-src_ex=
ternal_angelscript_sdk_angelscript_source_as__callfunc__x86.cpp
> Deleted:
>   head/cad/openvsp/files/extra-src_external_angelscript_sdk_angelscript_s=
ource_as__callfunc__x86.cpp
> Modified:
>   head/cad/openvsp/Makefile
>
> Modified: head/cad/openvsp/Makefile
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
> --- head/cad/openvsp/Makefile   Sat Nov 17 18:04:08 2018        (r485186)
> +++ head/cad/openvsp/Makefile   Sat Nov 17 18:08:10 2018        (r485187)
> @@ -30,22 +30,15 @@ BUILD_DEPENDS=3D      ${LOCALBASE}/lib/libopenNURBS.a=
:graphic
>                 ${LOCALBASE}/include/glm/glm.hpp:math/glm \
>                 ${LOCALBASE}/libdata/pkgconfig/pthread-stubs.pc:devel/lib=
pthread-stubs
>
> -CMAKE_SOURCE_PATH=3D     ${WRKSRC}/SuperProject
> -CMAKE_INSTALL_PREFIX=3D  ${STAGEDIR}${PREFIX}
> +USES=3D          compiler:c++11-lang cmake:outsource,noninja localbase\
> +               gl gnome jpeg
>
> -USES=3D          cmake:outsource,noninja jpeg
> -
>  USE_GITHUB=3D    yes
>  GH_PROJECT=3D    OpenVSP
>  GH_ACCOUNT=3D    ${GH_PROJECT}
>
> -# On FreeBSD < 11 libc++ lacks support for sized delete operators.
> -# GCC dropped the builtin version of these operators in 6+ by
> -# defaulting to gnu++14. Force c++11 instead.
> -# For a more detailed discussion see:
> -# https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D219484
> -USE_CXXSTD=3D    gnu++11
> -
> +CMAKE_SOURCE_PATH=3D     ${WRKSRC}/SuperProject
> +CMAKE_INSTALL_PREFIX=3D  ${STAGEDIR}${PREFIX}
>  CMAKE_ARGS=3D    -DVSP_USE_SYSTEM_CMINPACK:BOOLEAN=3Dyes \
>                 -DVSP_USE_SYSTEM_CPPTEST:BOOLEAN=3Dyes \
>                 -DVSP_USE_SYSTEM_CODEELI:BOOLEAN=3Dno \
> @@ -60,23 +53,8 @@ USE_XORG=3D    ice sm x11 xau xcb xdamage xdmcp xext x=
fixes
>  USE_GL=3D                gl glu
>
>  USE_GNOME=3D     libxml2
> -CFLAGS+=3D       -I${LOCALBASE}/include/openNURBS
>
>  .include <bsd.port.options.mk>
> -
> -# In 12 gcc can not compile the port so switch to clang 5.0.0 in base.
> -# But wait! It crashes while compiling so apply a patch to avoid weird a=
sm code
> -# that makes clang die
> -# For details see:
> -# https://lists.freebsd.org/pipermail/freebsd-hackers/2017-August/051352=
.html
> -
> -.if ${OPSYS} =3D=3D FreeBSD && ${OSVERSION} >=3D 1200000
> -USES+=3D compiler:c++11-lib
> -EXTRA_PATCHES=3D ${FILESDIR}/extra-src_external_angelscript_sdk_angelscr=
ipt_source_as__callfunc__x86.cpp
> -CFLAGS+=3D       -I${LOCALBASE}/include
> -.else
> -USES+=3D compiler:gcc-c++11-lib
> -.endif
>
>  BUILD_PREFIX=3D  OpenVSP-prefix/src/OpenVSP-build/_CPack_Packages/FreeBS=
D/ZIP/OpenVSP-${DISTVERSION}-FreeBSD
>
>
> Copied: head/cad/openvsp/files/patch-src_external_angelscript_sdk_angelsc=
ript_source_as__callfunc__x86.cpp (from r485186, head/cad/openvsp/files/ext=
ra-src_external_angelscript_sdk_angelscript_source_as__callfunc__x86.cpp)
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
> --- /dev/null   00:00:00 1970   (empty, because file is newly added)
> +++ head/cad/openvsp/files/patch-src_external_angelscript_sdk_angelscript=
_source_as__callfunc__x86.cpp  Sat Nov 17 18:08:10 2018        (r485187, co=
py of r485186, head/cad/openvsp/files/extra-src_external_angelscript_sdk_an=
gelscript_source_as__callfunc__x86.cpp)
> @@ -0,0 +1,164 @@
> +--- src/external/angelscript/sdk/angelscript/source/as_callfunc_x86.cpp.=
orig   2017-08-02 20:09:54 UTC
> ++++ src/external/angelscript/sdk/angelscript/source/as_callfunc_x86.cpp
> +@@ -340,7 +340,7 @@ endcopy:
> +       volatile asPWORD a[] =3D {asPWORD(args), asPWORD(paramSize), asPW=
ORD(func)};
> +
> +       asm __volatile__(
> +-#ifdef __OPTIMIZE__
> ++#if defined(__OPTIMIZE__) && !defined(__clang__)
> +               // When compiled with optimizations the stack unwind does=
n't work properly,
> +               // causing exceptions to crash the application. By adding=
 this prologue
> +               // and the epilogue below, the stack unwind works as it s=
hould.
> +@@ -385,7 +385,7 @@ endcopy:
> +               // Pop the alignment bytes
> +               "popl  %%esp            \n"
> +               "popl  %%ebx            \n"
> +-#ifdef __OPTIMIZE__
> ++#if defined(__OPTIMIZE__) && !defined(__clang__)
> +               // Epilogue
> +               "movl %%ebp, %%esp         \n"
> +               ".cfi_def_cfa_register esp \n"
> +@@ -462,7 +462,7 @@ endcopy:
> +       volatile asPWORD a[] =3D {asPWORD(obj), asPWORD(args), asPWORD(pa=
ramSize), asPWORD(func)};
> +
> +       asm __volatile__ (
> +-#ifdef __OPTIMIZE__
> ++#if defined(__OPTIMIZE__) && !defined(__clang__)
> +               // When compiled with optimizations the stack unwind does=
n't work properly,
> +               // causing exceptions to crash the application. By adding=
 this prologue
> +               // and the epilogue below, the stack unwind works as it s=
hould.
> +@@ -508,7 +508,7 @@ endcopy:
> +               // Pop the alignment bytes
> +               "popl  %%esp            \n"
> +               "popl  %%ebx            \n"
> +-#ifdef __OPTIMIZE__
> ++#if defined(__OPTIMIZE__) && !defined(__clang__)
> +               // Epilogue
> +               "movl %%ebp, %%esp         \n"
> +               ".cfi_def_cfa_register esp \n"
> +@@ -585,7 +585,7 @@ endcopy:
> +       volatile asPWORD a[] =3D {asPWORD(obj), asPWORD(args), asPWORD(pa=
ramSize), asPWORD(func)};
> +
> +       asm __volatile__ (
> +-#ifdef __OPTIMIZE__
> ++#if defined(__OPTIMIZE__) && !defined(__clang__)
> +               // When compiled with optimizations the stack unwind does=
n't work properly,
> +               // causing exceptions to crash the application. By adding=
 this prologue
> +               // and the epilogue below, the stack unwind works as it s=
hould.
> +@@ -631,7 +631,7 @@ endcopy:
> +               // Pop the alignment bytes
> +               "popl  %%esp            \n"
> +               "popl  %%ebx            \n"
> +-#ifdef __OPTIMIZE__
> ++#if defined(__OPTIMIZE__) && !defined(__clang__)
> +               // Epilogue
> +               "movl %%ebp, %%esp         \n"
> +               ".cfi_def_cfa_register esp \n"
> +@@ -717,7 +717,7 @@ endcopy:
> +       volatile asPWORD a[] =3D {asPWORD(obj), asPWORD(args), asPWORD(pa=
ramSize), asPWORD(func), asPWORD(retPtr)};
> +
> +       asm __volatile__ (
> +-#ifdef __OPTIMIZE__
> ++#if defined(__OPTIMIZE__) && !defined(__clang__)
> +               // When compiled with optimizations the stack unwind does=
n't work properly,
> +               // causing exceptions to crash the application. By adding=
 this prologue
> +               // and the epilogue below, the stack unwind works as it s=
hould.
> +@@ -767,7 +767,7 @@ endcopy:
> +               // Pop the alignment bytes
> +               "popl  %%esp            \n"
> +               "popl  %%ebx            \n"
> +-#ifdef __OPTIMIZE__
> ++#if defined(__OPTIMIZE__) && !defined(__clang__)
> +               // Epilogue
> +               "movl %%ebp, %%esp         \n"
> +               ".cfi_def_cfa_register esp \n"
> +@@ -849,7 +849,7 @@ endcopy:
> +       volatile asPWORD a[] =3D {asPWORD(args), asPWORD(paramSize), asPW=
ORD(func), asPWORD(retPtr)};
> +
> +       asm __volatile__ (
> +-#ifdef __OPTIMIZE__
> ++#if defined(__OPTIMIZE__) && !defined(__clang__)
> +               // When compiled with optimizations the stack unwind does=
n't work properly,
> +               // causing exceptions to crash the application. By adding=
 this prologue
> +               // and the epilogue below, the stack unwind works as it s=
hould.
> +@@ -896,7 +896,7 @@ endcopy:
> +               // Pop the alignment bytes
> +               "popl  %%esp            \n"
> +               "popl  %%ebx            \n"
> +-#ifdef __OPTIMIZE__
> ++#if defined(__OPTIMIZE__) && !defined(__clang__)
> +               // Epilogue
> +               "movl %%ebp, %%esp         \n"
> +               ".cfi_def_cfa_register esp \n"
> +@@ -980,7 +980,7 @@ endcopy:
> +       volatile asPWORD a[] =3D {asPWORD(obj), asPWORD(args), asPWORD(pa=
ramSize), asPWORD(func), asPWORD(retPtr)};
> +
> +       asm __volatile__ (
> +-#ifdef __OPTIMIZE__
> ++#if defined(__OPTIMIZE__) && !defined(__clang__)
> +               // When compiled with optimizations the stack unwind does=
n't work properly,
> +               // causing exceptions to crash the application. By adding=
 this prologue
> +               // and the epilogue below, the stack unwind works as it s=
hould.
> +@@ -1030,7 +1030,7 @@ endcopy:
> +               // Pop the alignment bytes
> +               "popl  %%esp            \n"
> +               "popl  %%ebx            \n"
> +-#ifdef __OPTIMIZE__
> ++#if defined(__OPTIMIZE__) && !defined(__clang__)
> +               // Epilogue
> +               "movl %%ebp, %%esp         \n"
> +               ".cfi_def_cfa_register esp \n"
> +@@ -1102,7 +1102,7 @@ endcopy:
> +       volatile asPWORD a[] =3D {asPWORD(args), asPWORD(paramSize), asPW=
ORD(func)};
> +
> +       asm __volatile__ (
> +-#ifdef __OPTIMIZE__
> ++#if defined(__OPTIMIZE__) && !defined(__clang__)
> +               // When compiled with optimizations the stack unwind does=
n't work properly,
> +               // causing exceptions to crash the application. By adding=
 this prologue
> +               // and the epilogue below, the stack unwind works as it s=
hould.
> +@@ -1145,7 +1145,7 @@ endcopy:
> +               // Pop the alignment bytes
> +               "popl  %%esp            \n"
> +               "popl  %%ebx            \n"
> +-#ifdef __OPTIMIZE__
> ++#if defined(__OPTIMIZE__) && !defined(__clang__)
> +               // Epilogue
> +               "movl %%ebp, %%esp         \n"
> +               ".cfi_def_cfa_register esp \n"
> +@@ -1233,7 +1233,7 @@ endcopy:
> +       volatile asPWORD a[] =3D {asPWORD(obj), asPWORD(args), asPWORD(pa=
ramSize), asPWORD(func)};
> +
> +       asm __volatile__ (
> +-#ifdef __OPTIMIZE__
> ++#if defined(__OPTIMIZE__) && !defined(__clang__)
> +               // When compiled with optimizations the stack unwind does=
n't work properly,
> +               // causing exceptions to crash the application. By adding=
 this prologue
> +               // and the epilogue below, the stack unwind works as it s=
hould.
> +@@ -1285,7 +1285,7 @@ endcopy:
> +               // Pop the alignment bytes
> +               "popl  %%esp            \n"
> +               "popl  %%ebx            \n"
> +-#ifdef __OPTIMIZE__
> ++#if defined(__OPTIMIZE__) && !defined(__clang__)
> +               // Epilogue
> +               "movl %%ebp, %%esp         \n"
> +               ".cfi_def_cfa_register esp \n"
> +@@ -1380,7 +1380,7 @@ endcopy:
> +       volatile asPWORD a[] =3D {asPWORD(obj), asPWORD(args), asPWORD(pa=
ramSize), asPWORD(func), asPWORD(retPtr)};
> +
> +       asm __volatile__ (
> +-#ifdef __OPTIMIZE__
> ++#if defined(__OPTIMIZE__) && !defined(__clang__)
> +               // When compiled with optimizations the stack unwind does=
n't work properly,
> +               // causing exceptions to crash the application. By adding=
 this prologue
> +               // and the epilogue below, the stack unwind works as it s=
hould.
> +@@ -1445,7 +1445,7 @@ endcopy:
> +               // Pop the alignment bytes
> +               "popl  %%esp           \n"
> +               "popl  %%ebx           \n"
> +-#ifdef __OPTIMIZE__
> ++#if defined(__OPTIMIZE__) && !defined(__clang__)
> +               // Epilogue
> +               "movl %%ebp, %%esp         \n"
> +               ".cfi_def_cfa_register esp \n"
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAGwOe2YUhk2UB1OZ1ZBSszMjpHUV5r-o8N8n5je_9ETdQPW7xQ>