On Saturday, April 23, 2016 22:16:50 Jakub Wilk wrote:
> * Shawn Sörbom <sh...@sorbom.com>, 2016-04-23, 12:47:
> >In a debian/rules file, I have the variable
> >export DEB_BUILD_OPTIONS=noopt
> 
> You should never do that in debian/rules.
> DEB_BUILD_OPTIONS is supposed to be set by the user who builds the
> package.
> 
> >but dpkg-buildflags --get CFLAGS returns
> >-g -O2 -fstack-protector-strong -Wformat -Werror=format-security
> >
> >What am I doing wrong?
> 
> You didn't show us your debian/rules, so I'll have to guess:
> If you use dpkg-buildflags within $(shell) then that's not affected by
> environment variables set in the same makefile.
> 
> >btw, the makefile in question has "-02" set in CFLAGS.
> >Do I need to patch it? I'm assuming no, but setting DEB_CFLAGS_STRIP =
> >-02
> 
> I think you meant "-O2", not "-02".
> 
> But again, DEB_<flag>_STRIP is supposed to be set by the user who builds
> the package. You can use DEB_<flag>_MAINT_STRIP in debian/rules if you
> really want to.
 
The problem is that optimization appears to cause a segfault during runtime.

I fixed the DEB_CFLAGSS_MAINT_STRIP and the DEB_BUILD_MAINT_OPTIONS issue.
I also included the makefile.
Here's the project link:
https://github.com/devshane/zork

#!/usr/bin/make -f
# See debhelper(7) (uncomment to enable)
# output every command that modifies files on the build system.
#DH_VERBOSE = 1

# see EXAMPLES in dpkg-buildflags(1) and read /usr/share/dpkg/*
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/default.mk

# see FEATURE AREAS in dpkg-buildflags(1)
export DEB_BUILD_MAINT_OPTIONS = hardening=+all noopt


# see ENVIRONMENT in dpkg-buildflags(1)
# package maintainers to append CFLAGS
#export DEB_CFLAGS_MAINT_APPEND  = -Wall -pedantic -g 
export DEB_CFLAGS_MAINT_STRIP  = -O2

# package maintainers to append LDFLAGS
#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed


# main packaging script based on dh7 syntax
%:
	dh $@ 

# debmake generated override targets
# This is example for Cmake (See http://bugs.debian.org/641051 )
#override_dh_auto_configure:
#	dh_auto_configure -- \
#	-DCMAKE_LIBRARY_PATH=$(DEB_HOST_MULTIARCH)



# Makefile for dungeon

# Where to install the program
BINDIR = /usr/games

# Where to install the data file
LIBDIR = /usr/games/lib

# The dungeon program provides a ``more'' facility which tries to
# figure out how many rows the terminal has.  Several mechanisms are
# supported for determining this; the most common one has been left
# uncommented.  If you have trouble, especially when linking, you may
# have to select a different option.

# more option 1: use the termcap routines.  On some systems the LIBS
# variable may need to be set to -lcurses.  On some it may need to
# be /usr/lib/termcap.o.  These options are commented out below.
LIBS = -ltermcap
TERMFLAG =
# LIBS = -lcurses
# LIBS = /usr/lib/termcap.o

# more option 2: use the terminfo routines.  On some systems the LIBS
# variable needs to be -lcursesX, but probably all such systems support
# the termcap routines (option 1) anyhow.
# LIBS = -lcurses
# TERMFLAG = -DMORE_TERMINFO

# more option 3: assume all terminals have 24 rows
# LIBS =
# TERMFLAG = -DMORE_24

# more option 4: don't use the more facility at all
# LIBS =
# TERMFLAG = -DMORE_NONE

# End of more options

# Uncomment the following line if you want to have access to the game
# debugging tool.  This is invoked by typing "gdt".  It is not much
# use except for debugging.
GDTFLAG = -DALLOW_GDT

# Compilation flags
CFLAGS = -O2 #-static
# On SCO Unix Development System 3.2.2a, the const type qualifier does
# not work correctly when using cc.  The following line will cause it
# to not be used and should be uncommented.
# CFLAGS= -O -Dconst=

##################################################################

# Source files
CSRC =	actors.c ballop.c clockr.c demons.c dgame.c dinit.c dmain.c\
	dso1.c dso2.c dso3.c dso4.c dso5.c dso6.c dso7.c dsub.c dverb1.c\
	dverb2.c gdt.c lightp.c local.c nobjs.c np.c np1.c np2.c np3.c\
	nrooms.c objcts.c rooms.c sobjs.c supp.c sverbs.c verbs.c villns.c

# Object files
OBJS =	actors.o ballop.o clockr.o demons.o dgame.o dinit.o dmain.o\
	dso1.o dso2.o dso3.o dso4.o dso5.o dso6.o dso7.o dsub.o dverb1.o\
	dverb2.o gdt.o lightp.o local.o nobjs.o np.o np1.o np2.o np3.o\
	nrooms.o objcts.o rooms.o sobjs.o supp.o sverbs.o verbs.o villns.o

dungeon: $(OBJS) dtextc.dat
	$(CC) $(CFLAGS) -o zork $(OBJS) $(LIBS)

install: zork dtextc.dat
	cp zork $(BINDIR)
	cp dtextc.dat $(LIBDIR)

clean:
	rm -f $(OBJS) zork core dsave.dat *~

dtextc.dat:
	cat dtextc.uu1 dtextc.uu2 dtextc.uu3 dtextc.uu4 | uudecode

dinit.o: dinit.c funcs.h vars.h
	$(CC) $(CFLAGS) $(GDTFLAG) -DTEXTFILE=\"$(LIBDIR)/dtextc.dat\" -c dinit.c

dgame.o: dgame.c funcs.h vars.h
	$(CC) $(CFLAGS) $(GDTFLAG) -c dgame.c

gdt.o: gdt.c funcs.h vars.h
	$(CC) $(CFLAGS) $(GDTFLAG) -c gdt.c

local.o: local.c funcs.h vars.h
	$(CC) $(CFLAGS) $(GDTFLAG) -c local.c

supp.o: supp.c funcs.h vars.h
	$(CC) $(CFLAGS) $(TERMFLAG) -c supp.c	

actors.o: funcs.h vars.h
ballop.o: funcs.h vars.h
clockr.o: funcs.h vars.h
demons.o: funcs.h vars.h
dmain.o: funcs.h vars.h
dso1.o: funcs.h vars.h
dso2.o: funcs.h vars.h
dso3.o: funcs.h vars.h
dso4.o: funcs.h vars.h
dso5.o: funcs.h vars.h
dso6.o: funcs.h vars.h
dso7.o: funcs.h vars.h
dsub.o: funcs.h vars.h
dverb1.o: funcs.h vars.h
dverb2.o: funcs.h vars.h
lightp.o: funcs.h vars.h
nobjs.o: funcs.h vars.h
np.o: funcs.h vars.h
np1.o: funcs.h vars.h parse.h
np2.o: funcs.h vars.h parse.h
np3.o: funcs.h vars.h parse.h
nrooms.o: funcs.h vars.h
objcts.o: funcs.h vars.h
rooms.o: funcs.h vars.h
sobjs.o: funcs.h vars.h
sverbs.o: funcs.h vars.h
verbs.o: funcs.h vars.h
villns.o: funcs.h vars.h

Reply via email to