[DRBD-user] Architecture flags do not passed to linker

Vadym Chepkov vchepkov at gmail.com
Fri Jun 4 16:47:07 CEST 2010

Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.


Hi,

I was trying to compile drbd on ppc64 in the mock environment and
stumbled on a small bug in the drbd-8.3.8/user/Makefile.in

These are some exempts from mock output:

INFO: ENTER do(['bash', '--login', '-c', 'rpmbuild -bb --target ppc64
--nodeps builddir/build/SPECS/drbd.spec'], False,
'/var/lib/mock/epel-5-ppc64/root/', None, 0, True, 0, 500, 104, None,
logger=<mock.trace_decorator.getLog object at 0xf7cc2f90>)
DEBUG: Executing command: ['bash', '--login', '-c', 'rpmbuild -bb
--target ppc64 --nodeps builddir/build/SPECS/drbd.spec']
DEBUG: Building target platforms: ppc64
DEBUG: Building for target ppc64


DEBUG: gcc -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
-fstack-protector --param=ssp-buffer-size=4 -m64 -mminimal-toc -Wall
-I../drbd   -c -o drbdadm_parser.o drbdadm_parser.c

As you can see the proper flag is used for the architecture: -m64

But, when it links it, the flag is not there:

DEBUG: gcc -o drbdadm drbdadm_scanner.o drbdadm_parser.o
drbdadm_main.o drbdadm_adjust.o drbdtool_common.o drbdadm_usage_cnt.o
drbd_buildtag.o drbdadm_minor_table.o

which leads to the linking error:

DEBUG: /usr/bin/ld: warning: powerpc:common64 architecture of input
file `drbdadm_parser.o' is incompatible with powerpc:common output
DEBUG: collect2: ld returned 1 exit status


If I make a simple fix:

 drbdadm: $(drbdadm-obj)
-       $(CC) -o $@ $^
+       $(CC) $(CFLAGS) -o $@ $^

and for other userland tools, then it compiles.

I also have somewhat related question.
Is it OK to run ppc64 version of the kernel module (since kernel is
ppc64) and ppc verison of the urserland tools?

Thank you,
Vadym Chepkov



More information about the drbd-user mailing list