Q:

How come I get "_builtin_va_start" undefined when I build with gcc?

Like
Answer
Comment
Flag
Thanks for your feedback!
A:

1 Answer

rank
1
1
Like
Comment
Flag
The <varargs.h> and <stdarg.h> include files define va_start in terms of this function, which is built-in on the HP C compiler. If you're using GCC you should be picking up include files from the gcc library directory. These include files do the right thing for both GCC and HP C. More often than not these files were never installed, or someone has placed a copy of varargs.h/stdarg.h into /usr/local/include (gcc searches there first). When all else fails, you can replace the definition of va_start as follows, depending on whether you are using varargs or stdarg (K&R or ANSI, respectively). #include <varargs.h> #ifdef __hppa #undef va_start #define va_start(a) ((a)=(char *)&va_alist+4) #endif #include <stdarg.h> #ifdef __hppa #undef va_start #define va_start(a,b) ((a)=(va_list)&(b)) #endif For <varargs.h>, this replacement should always work. For <stdarg.h>, this replacement will work unless the last fixed parameter ("b" in the call to va_start) is a structure larger than 8 bytes. ...  more

Related Videos

Add your answer...

Top Answerers

1.
barbara mory
8 Answers in the past week
2.
tunnel raj
11 Answers in the past week
3.
stack jasmine
8 Answers in the past week

Top Askers

1.
Jennifer Barrymore
2 Questions in the past week
2.
Mark Browns
2 Questions in the past week
3.
Robert Ortan
1 Question in the past week

Top Supporters

1.
roland evan
4 Likes given in the past week
2.
christina monte
4 Likes given in the past week
3.
lizzie gray
2 Likes given in the past week
...