freebsd-ports/comms/xastir/files/patch-src_Makefile.in
Alexey Dokuchaev 514b949913 - Unbreak the build on sparc64: gcc was generating assembler code that
invoked FdTOx (convert floating point to 64-bit integer) instruction
  with odd register number as the second argument, while apparently[*]
  an even number is required:

	fdtox	%f10, %f15

  It caused ``Illegal operands'' error when compiling `draw_symbols.c':

	{standard input}: Assembler messages:
	{standard input}:2686: Error: Illegal operands
	{standard input}:2695: Error: Illegal operands
	{standard input}:2835: Error: Illegal operands
	{standard input}:2844: Error: Illegal operands
	{standard input}:2854: Error: Illegal operands
	{standard input}:2864: Error: Illegal operands

  Fix the build by forcing -O0 when compiling this file on sparc64.

- Remove OPTCFLAGS option which enabled "optimized" CFLAGS ``-O2 -pipe'':
  these are our default CFLAGS for a long time

[*] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56890
2017-12-30 10:40:38 +00:00

15 lines
655 B
Text

--- src/Makefile.in.orig 2014-09-12 19:05:57 UTC
+++ src/Makefile.in
@@ -522,6 +522,12 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xa_config.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xastir_udp_client.Po@am__quote@
+ifeq ($(host_cpu),sparc64)
+draw_symbols.o: draw_symbols.c
+@am__fastdepCC_TRUE@ $(patsubst -O%,-O0,$(COMPILE)) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+endif
+
.c.o:
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po