http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46655

--- Comment #29 from Richard Nolde <richard.nolde at cybox dot com> 2011-05-16 
23:19:24 UTC ---
On 04/01/2011 06:24 AM, michael.haubenwallner at salomon dot at wrote:
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46655
>
> --- Comment #28 from Michael Haubenwallner<michael.haubenwallner at salomon 
> dot at>  2011-04-01 12:24:32 UTC ---
> Looks like IBM "fixed" their Assembler to ignore invalid .line pseudo-ops
> again:
> https://www-304.ibm.com/support/docview.wss?uid=isg1IZ87535
I seem to be unable to use my Gcc Bugzilla account at the moment 
(waiting for an updated password token message), so I'll send this one 
to you in the hope that it adds to the known database of issues for Gcc 
on AIX. I received the URL to update my Bugzilla password and it 
accepted it but I still cannot login.  "The username or password you 
entered is not valid." comes up each time I try.

I'm now running AIX 6.1,  oslevel -s returns 6100-06-03-1048 and the 
problem seems to persist with newer versions of gcc as well. I installed 
gcc 4.4.6 today after having issues trying to build GNU barcode from source.
gcc -v
Using built-in specs.
Target: powerpc-ibm-aix6.1.0.0
Configured with: ../gcc-4.4.6/configure --with-as=/usr/bin/as 
--with-ld=/usr/bin/ld --enable-languages=c,c++,fortran 
--prefix=/opt/freeware --enable-threads 
--enable-version-specific-runtime-libs --disable-nls 
--enable-decimal-float=dpd --host=powerpc-ibm-aix6.1.0.0
Thread model: aix
gcc version 4.4.6 (GCC)

The original Makefile includes -g among the CFLAGS, which produces the 
now well documented error message from the AIX assembler as noted in 
this thread. After revisiting the GCC Bugzilla site today, I added 
initializations for all the Static variables in the source code files 
that were not arrays and were not already initialized and then I tried 
to recompile with -g in the CFLAGS. This attempt now fails with the also 
reported message:
...
/usr/bin/gcc -g -std=gnu89 -O2 -Wall -DPACKAGE_NAME=\"\" 
-DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" 
-DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1 
-DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 
-DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 
-DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 
-DHAVE_UNISTD_H=1 -DHAVE_STRCASECMP=1    main.o cmdline.o  -L. -lbarcode 
-lpaper -lm -o barcode
ld: 0711-596 SEVERE ERROR: Object main.o
         An RLD for section 2 (.data) refers to symbol 944,
         but the storage class of the symbol is not C_EXT or C_HIDEXT.
collect2: ld returned 12 exit status
make: *** [barcode] Error 1

The only way to get a successful compile under AIX 6.1 TL 3 with IBM's 
fix-du-jour is to remove -g from the CFLAGS.
Here is the top of the GNU barcode Makefile, the rest is standard 
install targets etc.

#
# This Makefile should run fine with both pmake and gmake
#

CC = /usr/bin/gcc
CFLAGS = -std=gnu89 -O2 -Wall -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" 
-DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" 
-DPACKAGE_URL=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 
-DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 
-DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 
-DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_UNISTD_H=1 -DHAVE_STRCASECMP=1
RANLIB = /usr/bin/ranlib

INSTALL = /opt/freeware/bin/install -c

LDFLAGS = -L. -l$(TARGET) -lpaper -lm

prefix = /opt/freeware
BINDIR = $(bindir)
LIBDIR = $(libdir)
INCDIR = $(includedir)
MANDIR = $(prefix)/share
MAN1DIR = $(mandir)/man1
MAN3DIR = $(mandir)/man3
INFODIR = $(infodir)

# getopt may be installed or not, if not take our copy
GETOPT_O =

TARGET = barcode
LIBRARY = lib$(TARGET).a
MAN1 = $(TARGET).1
MAN3 = $(TARGET).3
#INFO = doc/$(TARGET).info
HEADER = $(TARGET).h

LIBOBJECTS = library.o ean.o code128.o code39.o code93.o i25.o \
                 msi.o plessey.o codabar.o \
                 ps.o pcl.o code11.o fonts.o
EXEOBJECTS = main.o cmdline.o $(GETOPT_O)
ALLSOURCES = $(LIBOBJECTS:.o=.c) $(EXEOBJECT:.o=.c)


#Hmm... "RM" is undefined in pmake
RM = rm

#all: $(TARGET) $(LIBRARY) $(MAN1) $(MAN3) $(INFO) sample
all: $(TARGET) $(LIBRARY) sample

$(TARGET): $(LIBRARY) $(EXEOBJECTS)
         $(CC) $(CFLAGS) $(EXEOBJECTS) $(LDFLAGS) -o $(TARGET)



ALSO, FWIW, gdb 7.2.1 under AIX 6.1 coredumps when trying to print any 
variable that is a pointer to char. I can compile programs that don't 
have static variables with -g, but I get a coredump when I tried to 
debug them. I can try to create a simple test case if this is not a 
known bug.

Thanks,
   Richard Nolde

Reply via email to