GCC question
William A. Mahaffey III
wam at hiwaay.net
Sat Sep 5 14:16:05 UTC 2015
On 09/05/15 08:33, William A. Mahaffey III wrote:
>
>
> I have some code which was originally SGI native, then moved to Linux
> (FC14 x86_64 & CentOS 5). I am now interested in getting it going
> under FreeBSD 9.3R. Due to differences in system header file includes,
> I need to tweek some of my app-specific header files. I have poked
> around the (*COPIOUS* !!!!) GCC man page & I couldn't find (or missed)
> either how to get it to regurgitate its default compiler-defines or a
> tabulation of those defines, so I can use them to conditionally
> include system headers in my own header files. Where is this info :-)
> ? TIA & have a nice (long) weekend.
>
>
To provide a bit of context:
[wam at kabini1, TEST, 9:11:44am] 522 % wc -l ../include/stdc.h
724 ../include/stdc.h
[wam at kabini1, TEST, 9:11:48am] 523 % head -24 ../include/stdc.h
#ifndef _STD_C_H_
#define _STD_C_H_
#ifdef __cplusplus // some useful I/O coding for C++ ....
using namespace std; // this is necessary to avoid "error: 'ostream'
does not name a type" error :-/ ....
#include <iostream>
#endif // __cplusplus
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#ifdef __linux__
#include <malloc.h>
#else
#include <unistd.h> // typedef uint :-) ....
#endif
#include <math.h>
#include <limits.h>
#include "Epsilon.h" // defines *ALL* epsilons (EPS, EPS2, etc.) used
by CAD ....
#include "bits.h"
[wam at kabini1, TEST, 9:11:50am] 524 % wc -l fpbl.c
320 fpbl.c
[wam at kabini1, TEST, 9:11:53am] 525 % head -10 fpbl.c
#include "stdc.h"
#include "Precis.h"
#undef SIZE
#define SIZE 50
[wam at kabini1, TEST, 9:11:55am] 526 % gcc -o fpbl -I ../include/ fpbl.c
/tmp//ccgFw6d7.o: In function `setupGrid':
fpbl.c:(.text+0x21b): undefined reference to `pow'
/tmp//ccgFw6d7.o: In function `initS':
fpbl.c:(.text+0x32f): undefined reference to `log'
/tmp//ccgFw6d7.o: In function `initUtau':
fpbl.c:(.text+0x4e4): undefined reference to `log'
/tmp//ccgFw6d7.o: In function `setupUz':
fpbl.c:(.text+0x833): undefined reference to `log'
/tmp//ccgFw6d7.o: In function `setupEP1':
fpbl.c:(.text+0x95f): undefined reference to `pow'
/tmp//ccgFw6d7.o: In function `main':
fpbl.c:(.text+0xf8c): undefined reference to `log'
fpbl.c:(.text+0xfee): undefined reference to `log'
[wam at kabini1, TEST, 9:11:59am] 527 %
i.e. my little test program includes 1 of my specific header files,
which in turn includes <math.h>, which defines pow, log, etc. Since gcc
apparently only reports some random text location, I am having trouble
figuring out WTF is going on here. I normnally compile this code on a
CentOS 5 VM on another box using the Intel compiler suite, version:
Intel(R) C Intel(R) 64 Compiler XE for applications running on Intel(R)
64, Version 12.0.3.174 Build 20110309
Copyright (C) 1985-2011 Intel Corporation. All rights reserved.
FOR NON-COMMERCIAL USE ONLY
I haven't used GCC in years. I determined (some years back) that the
Intel compiler produces noticably better code (executes 25 - 50% faster
than GCC-compiled code, gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-54)) &
is otherwise interoperable w/ GCC, so I have been using it ever since.
BTW:
[wam at kabini1, TEST, 9:15:45am] 527 % uname -a
FreeBSD kabini1.local 9.3-RELEASE-p24 FreeBSD 9.3-RELEASE-p24 #0: Sat
Aug 22 01:54:44 UTC 2015
root at amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC amd64
[wam at kabini1, TEST, 9:17:36am] 528 % grep -i gcc /etc/LIST.installed.txt
gcc-4.8.5 GNU Compiler Collection 4.8
gcc-ecj-4.5 Eclipse Java Compiler used to build GCC Java
[wam at kabini1, TEST, 9:17:43am] 529 %
Any clues appreciated :-). TIA & Have a nice weekend.
--
William A. Mahaffey III
----------------------------------------------------------------------
"The M1 Garand is without doubt the finest implement of war
ever devised by man."
-- Gen. George S. Patton Jr.
More information about the freebsd-questions
mailing list