From: "Ivan A. Melnikov" <iv@altlinux.org>
To: Motsyo Gennadi aka Drool <motsyo@gmail.com>, sisyphus@lists.altlinux.org
Subject: Re: [sisyphus] [howto] песочница в локальном hasher
Date: Thu, 17 Sep 2020 11:39:50 +0400
Message-ID: <20200917073950.mqfuu4nqti2hskkt@titan.localdomain> (raw)
In-Reply-To: <20200917072641.fhlnn3m72qptmklh@titan.localdomain>
[-- Attachment #1: Type: text/plain, Size: 1722 bytes --]
On Thu, Sep 17, 2020 at 11:26:41AM +0400, Ivan A. Melnikov wrote:
> On Thu, Sep 17, 2020 at 10:14:42AM +0300, Motsyo Gennadi aka Drool wrote:
> > 16.09.20 16:03, Ivan A. Melnikov пишет:
> > > -march=native causes the compiler to auto-detect the architecture of the
> > > build computer, то есть использовать всё, что компилятор видит
> > > в текущем процессоре.
> > >
> > > Рекомендуется найти и обезвредить обоих.
> >
> > В CMakeLists.txt используется конструкция
> > ARCH_FLAG "-march=${ARCH}"
> > Т.е. "native" ему передает сборочница? В предыдущих версиях эта
> > конструкция не использовалась, это нововведение. Кстати, разработчик
> > отозвался, пытается разобраться, и мне теперь есть что ему подсказать.
>
> Нет, native это значение по умолчанию для ${ARCH}:
>
> http://git.altlinux.org/gears/k/karbowanecwallet.git?a=blob;f=karbowanecwallet/CMakeLists.txt;h=ade77f6fec8fd12312e476387c3e27392e5bcc1a#l360
>
> Наверное, это можно победить, передав CMake -DARCH=default. А вот
> -maes похоже можно только патчем выкосить.
>
В первом приближении я бы сделал что-нибудь вроде приложенного,
чтобы не заморачиваться. Можно просить апстрим сделать опцию
не трогать флаги компилятора.
--
wbr,
iv m.
[-- Attachment #2: resprect-my-cflags.patch --]
[-- Type: text/x-patch, Size: 7366 bytes --]
diff --git a/cryptonote/CMakeLists.txt b/cryptonote/CMakeLists.txt
index f4454df..b76ee9c 100644
--- a/cryptonote/CMakeLists.txt
+++ b/cryptonote/CMakeLists.txt
@@ -51,12 +51,6 @@ if(ARCH_ID STREQUAL "ppc64le")
set(PPC64LE 1)
endif()
-if(WIN32 OR ARM)
- set(OPT_FLAGS_RELEASE "-O2")
-else()
- set(OPT_FLAGS_RELEASE "-Ofast")
-endif()
-
# BUILD_TAG is used to select the build type to check for a new version
if(BUILD_TAG)
message(STATUS "Building build tag ${BUILD_TAG}")
@@ -65,9 +59,6 @@ else()
message(STATUS "Building without build tag")
endif()
-set(CMAKE_C_FLAGS_RELEASE "-DNDEBUG ${OPT_FLAGS_RELEASE}")
-set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG ${OPT_FLAGS_RELEASE}")
-
list(INSERT CMAKE_MODULE_PATH 0
"${CMAKE_SOURCE_DIR}/cmake")
@@ -300,28 +291,6 @@ else()
option(NO_AES "Explicitly disable AES support" ${NO_AES})
- if(NOT NO_AES AND NOT ARM AND NOT PPC64LE)
- message(STATUS "AES support enabled")
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -maes")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -maes")
- elseif(PPC64LE)
- message(STATUS "AES support not available on ppc64le")
- elseif(ARM6)
- message(STATUS "AES support not available on ARMv6")
- elseif(ARM7)
- message(STATUS "AES support not available on ARMv7")
- elseif(ARM8)
- CHECK_CXX_ACCEPTS_FLAG("-march=${ARCH}+crypto" ARCH_PLUS_CRYPTO)
- if(ARCH_PLUS_CRYPTO)
- message(STATUS "Crypto extensions enabled for ARMv8")
- set(ARCH_FLAG "-march=${ARCH}+crypto")
- else()
- message(STATUS "Crypto extensions unavailable on your ARMv8 device")
- endif()
- else()
- message(STATUS "AES support disabled")
- endif()
-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11 -D_GNU_SOURCE ${MINGW_FLAG} ${STATIC_ASSERT_FLAG} ${WARNINGS} ${C_WARNINGS} ${ARCH_FLAG} ${PIC_FLAG}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -D_GNU_SOURCE ${MINGW_FLAG} ${STATIC_ASSERT_CPP_FLAG} ${WARNINGS} ${CXX_WARNINGS} ${ARCH_FLAG} ${PIC_FLAG}")
diff --git a/karbowanecwallet/CMakeLists.txt b/karbowanecwallet/CMakeLists.txt
index ade77f6..de68e3a 100644
--- a/karbowanecwallet/CMakeLists.txt
+++ b/karbowanecwallet/CMakeLists.txt
@@ -357,119 +357,8 @@ elseif (UNIX)
endif()
list(REMOVE_ITEM HEADERS ${CMAKE_SOURCE_DIR}/src/gui/macdockiconhandler.h)
- set(ARCH native CACHE STRING "CPU to build for: -march value or default to not pass -march at all")
- message(STATUS "Building on ${CMAKE_SYSTEM_PROCESSOR} for ${ARCH}")
- if ("${ARCH}" STREQUAL "default")
- set(ARCH_FLAG "")
- elseif(PPC64LE)
- set(ARCH_FLAG "-mcpu=${ARCH}")
- else()
- set(ARCH_FLAG "-march=${ARCH}")
- endif()
-
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -D_GNU_SOURCE")
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11 -D_GNU_SOURCE")
-
- if (NOT ARM AND NOT PPC64LE)
- message(STATUS "AES support enabled")
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -maes")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -maes")
- elseif (PPC64LE)
- message(STATUS "AES support not available on ppc64le")
- elseif (ARM6)
- message(STATUS "AES support not available on ARMv6")
- elseif (ARM7)
- message(STATUS "AES support not available on ARMv7")
- elseif (ARM8)
- CHECK_CXX_ACCEPTS_FLAG("-march=${ARCH}+crypto" ARCH_PLUS_CRYPTO)
- if (ARCH_PLUS_CRYPTO)
- message(STATUS "Crypto extensions enabled for ARMv8")
- set(ARCH_FLAG "-march=${ARCH}+crypto")
- else()
- message(STATUS "Crypto extensions unavailable on your ARMv8 device")
- endif()
- else()
- message(STATUS "AES support disabled")
- endif()
-
- # Compiled binary malfunctions due to aliasing (GCC 6.1+)
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-strict-aliasing")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-strict-aliasing")
-
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${ARCH_FLAG}")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ARCH_FLAG}")
-
- if (ARM)
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2")
- endif()
-
- if (ARM)
- message(STATUS "Setting FPU Flags for ARM Processors")
- # NB NEON hardware does not fully implement the IEEE 754 standard for floating-point arithmetic
- # Need custom assembly code to take full advantage of NEON SIMD
- #
- # Cortex-A5/9 -mfpu=neon-fp16
- # Cortex-A7/15 -mfpu=neon-vfpv4
- # Cortex-A8 -mfpu=neon
- # ARMv8 -FP and SIMD on by default for all ARM8v-A series, NO -mfpu setting needed
- #
- # For custom -mtune, processor IDs for ARMv8-A series:
- # 0xd04 - Cortex-A35
- # 0xd07 - Cortex-A57
- # 0xd08 - Cortex-A72
- # 0xd03 - Cortex-A73
- if (NOT ARM8)
- CHECK_CXX_ACCEPTS_FLAG(-mfpu=vfp3-d16 CXX_ACCEPTS_VFP3_D16)
- CHECK_CXX_ACCEPTS_FLAG(-mfpu=vfp4 CXX_ACCEPTS_VFP4)
- CHECK_CXX_ACCEPTS_FLAG(-mfloat-abi=hard CXX_ACCEPTS_MFLOAT_HARD)
- CHECK_CXX_ACCEPTS_FLAG(-mfloat-abi=softfp CXX_ACCEPTS_MFLOAT_SOFTFP)
- endif()
- if (ARM8)
- CHECK_CXX_ACCEPTS_FLAG(-mfix-cortex-a53-835769 CXX_ACCEPTS_MFIX_CORTEX_A53_835769)
- CHECK_CXX_ACCEPTS_FLAG(-mfix-cortex-a53-843419 CXX_ACCEPTS_MFIX_CORTEX_A53_843419)
- endif()
- if (ARM6)
- message(STATUS "Selecting VFP for ARMv6")
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpu=vfp")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpu=vfp")
- endif()
- if (ARM7)
- if (CXX_ACCEPTS_VFP3_D16 AND NOT CXX_ACCEPTS_VFP4)
- message(STATUS "Selecting VFP3 for ARMv7")
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpu=vfp3-d16")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpu=vfp3-d16")
- endif()
- if (CXX_ACCEPTS_VFP4)
- message(STATUS "Selecting VFP4 for ARMv7")
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpu=vfp4")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpu=vfp4")
- endif()
- if (CXX_ACCEPTS_MFLOAT_HARD)
- message(STATUS "Setting Hardware ABI for Floating Point")
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfloat-abi=hard")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfloat-abi=hard")
- endif()
- if (CXX_ACCEPTS_MFLOAT_SOFTFP AND NOT CXX_ACCEPTS_MFLOAT_HARD)
- message(STATUS "Setting Software ABI for Floating Point")
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfloat-abi=softfp")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfloat-abi=softfp")
- endif()
- endif()
- if (ARM8)
- if (CXX_ACCEPTS_MFIX_CORTEX_A53_835769)
- message(STATUS "Enabling Cortex-A53 workaround 835769")
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfix-cortex-a53-835769")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfix-cortex-a53-835769")
- endif()
- if (CXX_ACCEPTS_MFIX_CORTEX_A53_843419)
- message(STATUS "Enabling Cortex-A53 workaround 843419")
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfix-cortex-a53-843419")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfix-cortex-a53-843419")
- endif()
- endif()
- endif()
-
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -D_GNU_SOURCE -fno-strict-aliasing")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11 -D_GNU_SOURCE -fno-strict-aliasing")
endif()
endif ()
next prev parent reply other threads:[~2020-09-17 7:39 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-08-30 10:20 [sisyphus] Пакет в сборочнице собирается битый Motsyo Gennadi aka Drool
2020-08-30 10:30 ` alexei
2020-08-31 11:46 ` Sergey V Turchin
2020-08-31 16:24 ` Motsyo Gennadi aka Drool
2020-09-02 8:45 ` Sergey V Turchin
2020-09-03 5:00 ` Motsyo Gennadi aka Drool
2020-09-03 6:46 ` Sergey V Turchin
2020-09-03 14:46 ` Michael Shigorin
2020-09-03 15:21 ` Sergey V Turchin
2020-09-04 7:15 ` Sergey V Turchin
2020-09-05 18:43 ` Motsyo Gennadi aka Drool
2020-09-05 19:12 ` [sisyphus] [howto] песочница в локальном hasher Michael Shigorin
2020-09-05 20:55 ` Motsyo Gennadi aka Drool
2020-09-14 13:32 ` Michael Shigorin
2020-09-16 11:51 ` Motsyo Gennadi aka Drool
2020-09-16 12:24 ` alexei
2020-09-16 12:46 ` Motsyo Gennadi aka Drool
2020-09-16 12:50 ` Michael Shigorin
2020-09-16 12:59 ` Motsyo Gennadi aka Drool
2020-09-16 13:03 ` Ivan A. Melnikov
2020-09-16 15:57 ` Michael Shigorin
2020-09-17 6:22 ` Ivan A. Melnikov
2020-09-17 7:14 ` Motsyo Gennadi aka Drool
2020-09-17 7:26 ` Ivan A. Melnikov
2020-09-17 7:39 ` Ivan A. Melnikov [this message]
2020-09-17 8:13 ` Motsyo Gennadi aka Drool
2020-09-17 6:31 ` [sisyphus] Пакет в сборочнице собирается битый Sergey V Turchin
2020-09-17 6:51 ` Motsyo Gennadi aka Drool
2020-09-04 7:21 ` [sisyphus] ExcludeArch vs ExclusiveArch (was: Пакет в сборочнице собирается битый) Sergey V Turchin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200917073950.mqfuu4nqti2hskkt@titan.localdomain \
--to=iv@altlinux.org \
--cc=motsyo@gmail.com \
--cc=sisyphus@lists.altlinux.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
ALT Linux Sisyphus discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \
sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru
public-inbox-index sisyphus
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.sisyphus
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git