Tiny Core Linux

Tiny Core Extensions => TCE Q&A Forum => Topic started by: aus9 on March 30, 2013, 05:02:19 AM

Title: [SOLVED]collect2: ld returned 1 exit status
Post by: aus9 on March 30, 2013, 05:02:19 AM
Hi

I know that cups 1.4.8 already exists but I have failed to re-compile later versions so thought I would try to re-compile 1.4.8 and once I learnt how to do it, try to move forward.

so some basics are:

export CFLAGS="-march=i486 -mtune=i686 -Os -pipe"
export CXXFLAGS="-march=i486 -mtune=i686 -Os -pipe"
export LDFLAGS="-Wl,-O1"

I won't show all my tczs loaded, as I may have more than I want but after my config

./configure --prefix=/usr/local --sysconfdir=/usr/local/etc --localstatedir=/var --disable-libusb --enable-dbus \
--with-fontpath=/usr/local/share/ghostscript/fonts --with-dbusdir=/usr/local/etc/dbus-1 --without-languages \
--enable-libpaper --enable-unit-tests --with-cups-user=tc --with-cups-group=lpadmin --with-languages=all \
--with-rcdir=/tmp/cupsinit --disable-gnutls --disable-openssl --enable-bannertops --enable-texttops \
--enable-pap --enable-tcp-wrappers --enable-acl  --enable-image   

Code: [Select]
cat *.log | grep error
gcc: error: unrecognized option '-V'
gcc: fatal error: no input files
conftest.c:10:28: fatal error: ac_nonexistent.h: No such file or directory
conftest.c:10:28: fatal error: ac_nonexistent.h: No such file or directory
g++: error: unrecognized option '-V'
g++: fatal error: no input files
| /* Override any GCC internal prototype to avoid an error.
conftest.c:60:21: fatal error: bstring.h: No such file or directory
conftest.c:27:21: fatal error: bstring.h: No such file or directory
conftest.c:60:21: fatal error: usersec.h: No such file or directory
conftest.c:27:21: fatal error: usersec.h: No such file or directory
conftest.c:62:23: fatal error: sys/ucred.h: No such file or directory
conftest.c:29:23: fatal error: sys/ucred.h: No such file or directory
| /* Override any GCC internal prototype to avoid an error.
| /* Override any GCC internal prototype to avoid an error.
| /* Override any GCC internal prototype to avoid an error.
conftest.c:54:11: error: 'struct stat' has no member named 'st_gen'
| /* Override any GCC internal prototype to avoid an error.
| /* Override any GCC internal prototype to avoid an error.
| /* Override any GCC internal prototype to avoid an error.
| /* Override any GCC internal prototype to avoid an error.
configure:13893: checking for library containing hstrerror
conftest.c:86:12: error: 'struct sockaddr' has no member named 'sa_len'
conftest.c:86:19: error: 'struct sockaddr' has no member named 'sa_len'
conftest.c:113:24: fatal error: sys/sockio.h: No such file or directory
conftest.c:80:24: fatal error: sys/sockio.h: No such file or directory
conftest.c:81:29: fatal error: netat/appletalk.h: No such file or directory
| /* Override any GCC internal prototype to avoid an error.
conftest.c:100:7: error: size of array 'off_t_is_large' is negative
conftest.c:130:20: fatal error: dns_sd.h: No such file or directory
conftest.c:97:20: fatal error: dns_sd.h: No such file or directory
| /* Override any GCC internal prototype to avoid an error.
conftest.c:130:20: fatal error: launch.h: No such file or directory
conftest.c:97:20: fatal error: launch.h: No such file or directory
ac_cv_search_hstrerror='none required'

Now lets try make -j3

Code: [Select]
root@box:/mnt/sda3/tczs/cups-1.4.8# make -j3
Using ARCHFLAGS=
Using ALL_CFLAGS=-I.. -D_CUPS_SOURCE -march=i486 -mtune=i686 -Os -pipe -I/usr/local/include/dbus-1.0 -I/usr/local/lib/dbus-1.0/include   -DDBUS_API_SUBJECT_TO_CHANGE  -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_THREAD_SAFE -D_REENTRANT
Using ALL_CXXFLAGS=-I.. -D_CUPS_SOURCE -march=i486 -mtune=i686 -Os -pipe  -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_THREAD_SAFE -D_REENTRANT
Using CC=gcc
Using CXX=gcc
Using DSOFLAGS=-L../cups -Wl,-rpath,/usr/local/lib  -Wl,-soname,all -shared -Wall -Wno-format-y2k -fPIC -Os -g -fstack-protector -D_GNU_SOURCE
Using LDFLAGS=-L../cgi-bin -L../cups -L../filter -L../ppdc -L../scheduler -Wl,-O1 -Wl,-rpath,/usr/local/lib  -fPIE -pie -Wall -Wno-format-y2k -fPIC -Os -g -fstack-protector -D_GNU_SOURCE
Using LIBS=-lcups   -lpthread -lm -lcrypt
Making all in cups...
Making all in filter...
Linking gziptoany...
Linking testimage...
Making all in backend...
Linking parallel...
Linking snmp...
Linking usb...
libbackend.a(ieee1284.o): In function `backendGetMakeModel':
/home/tc/tczs/cups-1.4.8/backend/ieee1284.c:356: undefined reference to `_cups_debug_printf'
/home/tc/tczs/cups-1.4.8/backend/ieee1284.c:366: undefined reference to `_cups_debug_puts'
libbackend.a(ieee1284.o): In function `backendGetDeviceID':
/home/tc/tczs/cups-1.4.8/backend/ieee1284.c:60: undefined reference to `_cups_debug_printf'
/home/tc/tczs/cups-1.4.8/backend/ieee1284.c:72: undefined reference to `_cups_debug_puts'
/home/tc/tczs/cups-1.4.8/backend/ieee1284.c:219: undefined reference to `_cups_debug_printf'
/home/tc/tczs/cups-1.4.8/backend/ieee1284.c:249: undefined reference to `_cups_debug_printf'
collect2: ld returned 1 exit status
make[1]: *** [parallel] Error 1
make[1]: *** Waiting for unfinished jobs....
libbackend.a(ieee1284.o): In function `backendGetMakeModel':
/home/tc/tczs/cups-1.4.8/backend/ieee1284.c:356: undefined reference to `_cups_debug_printf'
/home/tc/tczs/cups-1.4.8/backend/ieee1284.c:366: undefined reference to `_cups_debug_puts'
libbackend.a(ieee1284.o): In function `backendGetDeviceID':
/home/tc/tczs/cups-1.4.8/backend/ieee1284.c:60: undefined reference to `_cups_debug_printf'
/home/tc/tczs/cups-1.4.8/backend/ieee1284.c:72: undefined reference to `_cups_debug_puts'
/home/tc/tczs/cups-1.4.8/backend/ieee1284.c:219: undefined reference to `_cups_debug_printf'
/home/tc/tczs/cups-1.4.8/backend/ieee1284.c:249: undefined reference to `_cups_debug_printf'
collect2: ld returned 1 exit status
make[1]: *** [snmp] Error 1
libbackend.a(ieee1284.o): In function `backendGetMakeModel':
/home/tc/tczs/cups-1.4.8/backend/ieee1284.c:356: undefined reference to `_cups_debug_printf'
/home/tc/tczs/cups-1.4.8/backend/ieee1284.c:366: undefined reference to `_cups_debug_puts'
libbackend.a(ieee1284.o): In function `backendGetDeviceID':
/home/tc/tczs/cups-1.4.8/backend/ieee1284.c:60: undefined reference to `_cups_debug_printf'
/home/tc/tczs/cups-1.4.8/backend/ieee1284.c:72: undefined reference to `_cups_debug_puts'
/home/tc/tczs/cups-1.4.8/backend/ieee1284.c:219: undefined reference to `_cups_debug_printf'
/home/tc/tczs/cups-1.4.8/backend/ieee1284.c:249: undefined reference to `_cups_debug_printf'
collect2: ld returned 1 exit status
make[1]: *** [usb] Error 1
make: *** [all] Error 1

google suggests this link on possible collect2 ld error
http://stackoverflow.com/questions/4222501/how-to-solve-collect2-ld-returned-1-exit-status

Now here is where it gets ugly for me, maybe if I explain what I think I am doing you can reveal why I am wrong etc ok?

I can see that the static lib file libbackend.a seems to depend on ieee1284.o and so lets list the contents of the cups-src/backend folder
Quote
root@box:/mnt/sda3/tczs/cups-1.4.8# ls backend
Dependencies          http   libbackend.a  pap.c     scsi-irix.c   serial.o    socket      testbackend     usb-darwin.c
Makefile          ieee1284.c   lpd         parallel.c  scsi-linux.c   snmp-supplies.c  socket.c    testbackend.c   usb-libusb.c
backend-private.h       ieee1284.o   lpd.c         parallel.o  scsi.c   snmp-supplies.o  socket.o    testbackend.o   usb-unix.c
dnssd.c             ipp      lpd.o         runloop.c   scsi.o   snmp.c       test1284    testsupplies    usb.c
easysw-firewire-design.txt  ipp.c   network.c     runloop.o   serial   snmp.o       test1284.c  testsupplies.c  usb.o
easysw-firewire-linux.txt   ipp.o   network.o     scsi     serial.c   snmp.txt    test1284.o  testsupplies.o

so in my mind the first thing I think I need to do is redo the "c" file to generate the "object" file for  ieee1284

Code: [Select]
g++ backend/ieee1284.c -o backend/ieee1284.o
In file included from backend/ieee1284.c:28:0:
backend/backend-private.h:28:32: fatal error: cups/ppd-private.h: No such file or directory
compilation terminated

but appsearch for ppd-private.h.....no such file but that list contains a dependency list so here are the contents

Quote
# DO NOT DELETE THIS LINE -- make depend depends on it.

ipp.o: ../cups/http-private.h ../config.h ../cups/http.h ../cups/versioning.h
ipp.o: ../cups/md5.h ../cups/ipp-private.h ../cups/ipp.h backend-private.h
ipp.o: ../cups/backend.h ../cups/sidechannel.h ../cups/ppd-private.h
ipp.o: ../cups/cups.h ../cups/ppd.h ../cups/array.h ../cups/file.h
ipp.o: ../cups/language.h ../cups/debug.h ../cups/i18n.h ../cups/transcode.h
ipp.o: ../cups/snmp-private.h ../cups/string.h
lpd.o: ../cups/http-private.h ../config.h ../cups/http.h ../cups/versioning.h
lpd.o: ../cups/md5.h ../cups/ipp-private.h ../cups/ipp.h backend-private.h
lpd.o: ../cups/backend.h ../cups/sidechannel.h ../cups/ppd-private.h
lpd.o: ../cups/cups.h ../cups/ppd.h ../cups/array.h ../cups/file.h
lpd.o: ../cups/language.h ../cups/debug.h ../cups/i18n.h ../cups/transcode.h
lpd.o: ../cups/snmp-private.h ../cups/string.h
dnssd.o: backend-private.h ../cups/backend.h ../cups/versioning.h
dnssd.o: ../cups/sidechannel.h ../cups/ppd-private.h ../cups/cups.h
dnssd.o: ../cups/ipp.h ../cups/http.h ../cups/ppd.h ../cups/array.h
dnssd.o: ../cups/file.h ../cups/language.h ../cups/debug.h ../cups/i18n.h
dnssd.o: ../cups/transcode.h ../cups/snmp-private.h ../cups/string.h
dnssd.o: ../config.h ../cups/array.h
pap.o: ../config.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
pap.o: ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
pap.o: ../cups/language.h ../cups/backend.h ../cups/sidechannel.h
pap.o: ../cups/i18n.h ../cups/transcode.h
parallel.o: backend-private.h ../cups/backend.h ../cups/versioning.h
parallel.o: ../cups/sidechannel.h ../cups/ppd-private.h ../cups/cups.h
parallel.o: ../cups/ipp.h ../cups/http.h ../cups/ppd.h ../cups/array.h
parallel.o: ../cups/file.h ../cups/language.h ../cups/debug.h ../cups/i18n.h
parallel.o: ../cups/transcode.h ../cups/snmp-private.h ../cups/string.h
parallel.o: ../config.h
scsi.o: ../cups/backend.h ../cups/versioning.h ../cups/cups.h ../cups/ipp.h
scsi.o: ../cups/http.h ../cups/ppd.h ../cups/array.h ../cups/file.h
scsi.o: ../cups/language.h ../cups/i18n.h ../cups/transcode.h
scsi.o: ../cups/string.h ../config.h
serial.o: backend-private.h ../cups/backend.h ../cups/versioning.h
serial.o: ../cups/sidechannel.h ../cups/ppd-private.h ../cups/cups.h
serial.o: ../cups/ipp.h ../cups/http.h ../cups/ppd.h ../cups/array.h
serial.o: ../cups/file.h ../cups/language.h ../cups/debug.h ../cups/i18n.h
serial.o: ../cups/transcode.h ../cups/snmp-private.h ../cups/string.h
serial.o: ../config.h
snmp.o: backend-private.h ../cups/backend.h ../cups/versioning.h
snmp.o: ../cups/sidechannel.h ../cups/ppd-private.h ../cups/cups.h
snmp.o: ../cups/ipp.h ../cups/http.h ../cups/ppd.h ../cups/array.h
snmp.o: ../cups/file.h ../cups/language.h ../cups/debug.h ../cups/i18n.h
snmp.o: ../cups/transcode.h ../cups/snmp-private.h ../cups/string.h
snmp.o: ../config.h ../cups/array.h ../cups/file.h ../cups/http-private.h
snmp.o: ../cups/md5.h ../cups/ipp-private.h
socket.o: ../cups/http-private.h ../config.h ../cups/http.h
socket.o: ../cups/versioning.h ../cups/md5.h ../cups/ipp-private.h
socket.o: ../cups/ipp.h backend-private.h ../cups/backend.h
socket.o: ../cups/sidechannel.h ../cups/ppd-private.h ../cups/cups.h
socket.o: ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h
socket.o: ../cups/debug.h ../cups/i18n.h ../cups/transcode.h
socket.o: ../cups/snmp-private.h ../cups/string.h
test1284.o: ../cups/string.h ../config.h ieee1284.c backend-private.h
test1284.o: ../cups/backend.h ../cups/versioning.h ../cups/sidechannel.h
test1284.o: ../cups/ppd-private.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
test1284.o: ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h
test1284.o: ../cups/debug.h ../cups/i18n.h ../cups/transcode.h
test1284.o: ../cups/snmp-private.h
testbackend.o: ../cups/string.h ../config.h ../cups/cups.h ../cups/ipp.h
testbackend.o: ../cups/http.h ../cups/versioning.h ../cups/ppd.h
testbackend.o: ../cups/array.h ../cups/file.h ../cups/language.h
testbackend.o: ../cups/sidechannel.h
testsupplies.o: backend-private.h ../cups/backend.h ../cups/versioning.h
testsupplies.o: ../cups/sidechannel.h ../cups/ppd-private.h ../cups/cups.h
testsupplies.o: ../cups/ipp.h ../cups/http.h ../cups/ppd.h ../cups/array.h
testsupplies.o: ../cups/file.h ../cups/language.h ../cups/debug.h
testsupplies.o: ../cups/i18n.h ../cups/transcode.h ../cups/snmp-private.h
testsupplies.o: ../cups/string.h ../config.h
usb.o: backend-private.h ../cups/backend.h ../cups/versioning.h
usb.o: ../cups/sidechannel.h ../cups/ppd-private.h ../cups/cups.h
usb.o: ../cups/ipp.h ../cups/http.h ../cups/ppd.h ../cups/array.h
usb.o: ../cups/file.h ../cups/language.h ../cups/debug.h ../cups/i18n.h
usb.o: ../cups/transcode.h ../cups/snmp-private.h ../cups/string.h
usb.o: ../config.h

At this point my with my skills  I am stumped!
Title: Re: collect2: ld returned 1 exit status
Post by: curaga on March 30, 2013, 07:54:49 AM
This is not the error you're interested in:
collect2: ld returned 1 exit status

It's this one:
/home/tc/tczs/cups-1.4.8/backend/ieee1284.c:249: undefined reference to `_cups_debug_printf'

It can't find the function. I'm not familiar with cups, but one quick workaround could be to disable parallel port support.
Title: Re: collect2: ld returned 1 exit status
Post by: aus9 on March 30, 2013, 09:16:22 AM
well that causes me more issues unfortunately as above errors are

make[1]: *** [parallel] Error 1
make[1]: *** [snmp] Error 1
make[1]: *** [usb] Error 1

I am frightened if I disable these support I end up with no backends except maybe serial.

However I did run a new command which backs up what you said about parallel
Code: [Select]
make check
Using ARCHFLAGS=
Using ALL_CFLAGS=-I.. -D_CUPS_SOURCE -I/usr/local/include/dbus-1.0 -I/usr/local/lib/dbus-1.0/include   -DDBUS_API_SUBJECT_TO_CHANGE -DDEBUG  -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_THREAD_SAFE -D_REENTRANT
Using ALL_CXXFLAGS=-I.. -D_CUPS_SOURCE -DDEBUG  -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_THREAD_SAFE -D_REENTRANT
Using CC=gcc
Using CXX=gcc
Using DSOFLAGS=-L../cups -Wl,-rpath,/usr/local/lib  -Wl,-soname,all -shared -Wall -Wno-format-y2k -fPIC -Os -g -fstack-protector -D_GNU_SOURCE
Using LDFLAGS=-L../cgi-bin -L../cups -L../filter -L../ppdc -L../scheduler -Wl,-rpath,/usr/local/lib  -fPIE -pie -Wall -Wno-format-y2k -fPIC -Os -g -fstack-protector -D_GNU_SOURCE
Using LIBS=-lcups   -lpthread -lm -lcrypt
Making all in cups...
Making all in filter...
Making all in backend...
Linking parallel...
libbackend.a(ieee1284.o): In function `backendGetMakeModel':
/home/tc/tczs/cups-1.4.8/backend/ieee1284.c:356: undefined reference to `_cups_debug_printf'
/home/tc/tczs/cups-1.4.8/backend/ieee1284.c:366: undefined reference to `_cups_debug_puts'
libbackend.a(ieee1284.o): In function `backendGetDeviceID':
/home/tc/tczs/cups-1.4.8/backend/ieee1284.c:60: undefined reference to `_cups_debug_printf'
/home/tc/tczs/cups-1.4.8/backend/ieee1284.c:72: undefined reference to `_cups_debug_puts'
/home/tc/tczs/cups-1.4.8/backend/ieee1284.c:219: undefined reference to `_cups_debug_printf'
/home/tc/tczs/cups-1.4.8/backend/ieee1284.c:249: undefined reference to `_cups_debug_printf'
collect2: ld returned 1 exit status
make[1]: *** [parallel] Error 1
make: *** [all] Error 1

altho the snmp and usb are "not" showing up  here, it does confirm the first error is parallel.

What I think you are saying is .....don't try to re-code using g++ any c file but disable the support?

so I am still stumped.
Title: Re: collect2: ld returned 1 exit status
Post by: aus9 on March 30, 2013, 09:29:43 AM
ahh just found something.....something different is good

so pretend I ignored above advice and tried
Code: [Select]
root@box:/mnt/sda3/tczs/cups-1.4.8/backend# g++ parallel.c -o parallel.o
In file included from parallel.c:28:0:
backend-private.h:28:32: fatal error: cups/ppd-private.h: No such file or directory
compilation terminated.

now look at some dependencies for backend-private.h

#  include <cups/debug.h>

no such animal according to my eyesight in cups or its dev. Rich has given me appsearch to play with, and its search does not give a hit for cups*

ditto
i18n.h, snmp-private.h, and stop searching at this point.
Title: Re: collect2: ld returned 1 exit status
Post by: Rich on March 30, 2013, 10:31:22 AM
Hi aus9
Quote
i18n.h, snmp-private.h, and stop searching at this point.
glibmm-dev.tcz  contains  i18n.h
Title: Re: collect2: ld returned 1 exit status
Post by: aus9 on March 30, 2013, 10:47:50 AM
my bad I only meant for cups as per snippet

/*
 * Include necessary headers.
 */

#  include <cups/backend.h>
#  include <cups/sidechannel.h>
#  include <cups/ppd-private.h>
#  include <cups/debug.h>
#  include <cups/i18n.h>
#  include <cups/snmp-private.h>
#  include <stdlib.h>
#  include <errno.h>
#  include <cups/string.h>
#  include <signal.h>

I think I will close this thread....tomorrow morning.... as cups 1.4.8 does not appear to have the appropiate headers for what I was trying to do.