This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.
See the CrossGCC FAQ for lots more information.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
David,
> You should be able to use -fno-exceptions to fix the _eh_context
> references, but remember your C++ code cannot then use "try"
> and "throw".
With your help, I've come quite a bit further.
Exceptions are, at the moment, not necessary, so that's ok.
> You should also be able to use -mno-eabi to prevent the
> call to __eabi;
> but that option was broken in at least some gcc versions, so
> if it doesn't
The -mno-eabi has no effect on GCC 3.0.x (there was a topic
about this on the list some while ago), so i'll stick to
2.95.3 for now.
I tried and it doesn't complain about __eabi anymore.
> work, just rename 'main' to something else, and change the
> name in your
> linker script vector0 to match. The call to __eabi is inserted by the
> compiler in any function called 'main', just using a name match.
I tried to replace 'main' with the name 'myprog' and adjusted the
linker script accordingly; replacing 'main' with 'myprog'.
The linker spit out this (copy&paste):
[prompt]$ powerpc-eabi-g++ -nostdlib -nostartfiles -mno-eabi -fno-exceptions
-fno-builtin -Wl,-Tiad.ld,-N -o cpp cpp.cc
iad.ld:24: undefined symbol `myprog' referenced in expression
collect2: ld returned 1 exit status
[prompt]$
> (*please* folks, copy and paste your error messages, don't
> retype them,
> because I've never even once seen anyone do that and not make
> a mistake that
> could be misleading) if you aren't actually calling new and
> delete, but I
> suspect that what you might want is to *remove* the
> -fno-builtin; that way
> you will get the builtin inline versions of the function
> actually placed
> into your code, rather than being left with references to be filled by
> external (i.e. non-builtin) functions. I'm not quite sure
> about this bit -
> try it and see.
Ok, sorry 'bt that.
Here is a full copy/paste of the error.
Whether i put "-fno-builtin" on the commandline or not, does not matter.
The output is exactly the same.
[(15:00:01)jan ~/cpp]$ powerpc-eabi-g++ -v -nostdlib -nostartfiles -mno-eabi
-fno-exceptions -fno-builtin -Wl,-Tscript.ld,-N -o ledtest ledtest.cc
Reading specs from /usr/local/lib/gcc-lib/powerpc-eabi/2.95.3/specs
gcc version 2.95.3 20010315 (release)
/usr/local/lib/gcc-lib/powerpc-eabi/2.95.3/cpp0 -lang-c++ -v -D__GNUC__=2
-D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -DPPC -D__embedded__
-D__PPC__ -D__embedded__ -D__PPC -Asystem(embedded) -Acpu(powerpc)
-Amachine(powerpc) -D__CHAR_UNSIGNED__ -D_CALL_SYSV -D_BIG_ENDIAN
-D__BIG_ENDIAN__ -Amachine(bigendian) -D_ARCH_PPC cpp.cc
/home/jan/tmp/ccigvRag.ii
GNU CPP version 2.95.3 20010315 (release) (PowerPC Embedded)
#include "..." search starts here:
#include <...> search starts here:
/usr/local/lib/gcc-lib/powerpc-eabi/2.95.3/../../../../include/g++-3
/usr/local/lib/gcc-lib/powerpc-eabi/2.95.3/include
/usr/local/lib/gcc-lib/powerpc-eabi/2.95.3/../../../../powerpc-eabi/sys-incl
ude
/usr/local/lib/gcc-lib/powerpc-eabi/2.95.3/../../../../powerpc-eabi/include
End of search list.
The following default directories have been omitted from the search path:
End of omitted list.
/usr/local/lib/gcc-lib/powerpc-eabi/2.95.3/cc1plus
/home/jan/tmp/ccigvRag.ii -quiet -dumpbase cpp.cc -mno-eabi -version
-fno-exceptions -fno-builtin -o /home/jan/tmp/cciEpHPn.s
GNU C++ version 2.95.3 20010315 (release) (powerpc-eabi) compiled by GNU C
version 2.96 20000731 (Mandrake Linux 8.1 2.96-0.62mdk).
/usr/local/powerpc-eabi/bin/as -mppc -V -Qy -o /home/jan/tmp/cc4eixnA.o
/home/jan/tmp/cciEpHPn.s
GNU assembler version 2.11.2 (powerpc-eabi) using BFD version 2.11.2
/usr/local/lib/gcc-lib/powerpc-eabi/2.95.3/collect2 -V -Qy -dn -Bstatic -o
ledtest -L/usr/local/lib/gcc-lib/powerpc-eabi/2.95.3
-L/usr/local/powerpc-eabi/lib -Tscript.ld -N /home/jan/tmp/cc4eixnA.o
/home/jan/tmp/cc4eixnA.o: In function `LED::~LED(void)':
/home/jan/tmp/cc4eixnA.o(.text+0xac): undefined reference to
`__builtin_delete'
GNU ld version 2.11.2 (with BFD 2.11.2)
Supported emulations:
elf32ppc
elf32ppclinux
elf32ppcsim
collect2: ld returned 1 exit status
[(15:01:12)jan ~/cpp]$
Still, the __builtin_delete persists...
I'm not using 'new' or 'delete' in any of my code AFAIK.
There is only one class, called LED:
class LED
{
private:
unsigned char ledcode;
public:
LED();
LED(unsigned char initcode);
void set(unsigned char code);
unsigned char get();
};
And then the implementations that simply update the private member ledcode.
There is also a 'main' (or 'myprog') which does :
int main(void)
{
LED myled;
myled.set(0xfe);
return 0;
}
I hope this can help,
Jan
------
Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |