You know you can just do "CFLAGS += -O0" rather than this?

It really seems strange though, are any other OS packages of epic4/5 built that way?

--
 Sent from a phone, apologies for poor formatting.

On 16 April 2022 08:13:12 Mikhail <[email protected]> wrote:

On Thu, Apr 14, 2022 at 06:49:12PM +0100, Stuart Henderson wrote:
On 2022/04/08 22:14, Mikhail wrote:
> On Fri, Apr 08, 2022 at 08:03:14PM +0100, Stuart Henderson wrote:
> > It's too late for 7.1 release.
> >
> > Re: the -O2 issue, does setting -std=c89 fix the problem?
>
> I think epic developers won't take the risk, the software has very old
> history and we didn't receive any random crashes reports while being
> simply with '-O' (epic4 and epic5 are still actively maintained, all
> efforts are on the later, though).
>
> I've plans to submit net/epic5 port, because it has gained pledge/unveil
> support, does -O will be considered as an issue by committers?

- don't set MODPY_MAJOR_VERSION

Thanks for review. Fixed.

- my previous comments about the CFLAGS handing stand:

# You must not try to compile epic with "gcc -O2" because -O2 will
# generate bad code that leads to random crashes.  When you use -O2, gcc
# assumes the source is conformant to ISO C99's requirements about
# alias-safety, and EPIC, being a C90 program, does not conform, so the
# result is undefined behavior (which means it crashes randomly.)
CFLAGS:=        ${CFLAGS:C/-O2/-O/g}

--snip--
My thinking is that, if the code has behaviour which is considered
undefined by the C standard assumed by the compiler, no level of
optimization is safe. Maybe now you get lucky and -O works (on whichever
architecture you've tested) but I don't think it's reasonable to assume
that this is the case everywhere, or will be the case following compiler
updates.

(Of course on many OpenBSD architectures the relevant compiler is not
GCC anyway).
--snip--

I've changed -O to -O0.

and your proposal doesn't work if the user builds from ports with CFLAGS=-O3

Such change has to go to net/epic4 too, because currently it builds with
-O2, so I added such lines to Makefile:
CFLAGS:=        ${CFLAGS:C/-O1/-O0/g}
CFLAGS:=        ${CFLAGS:C/-O2/-O0/g}
CFLAGS:=        ${CFLAGS:C/-O3/-O0/g}
CFLAGS:=        ${CFLAGS:C/-O4/-O0/g}
CFLAGS:=        ${CFLAGS:C/-Ofast/-O0/g}
CFLAGS:=        ${CFLAGS:C/-Os/-O0/g}
CFLAGS:=        ${CFLAGS:C/-Oz/-O0/g}

New tgz is attached.

Reply via email to