Sponsored Content
Top Forums UNIX for Advanced & Expert Users Difference between Unix and Linux for resolving symbols Post 302716959 by snowline84 on Wednesday 17th of October 2012 10:58:36 AM
Old 10-17-2012
Difference between Unix and Linux for resolving symbols

I came across a difference between Unix and Linux, when it comes to resolving the symbols from the libs.

consider the following code segments...

Code:
$ cat call1.c
#include <stdio.h>
int a1;
extern int a3;
void  prnt_a3()
{
  printf("\n%d\n",a3);
}

$ cat test.c
#include <stdio.h>
extern int a1;
int  main()
{
  int a2=20;
  printf("\n%d\n",a1);
  return 0;
}

Highlights are...

* a1 is defined in call1 and is being referenced in test.c and is being used also
* a3 is referenced to in test.c and is not defined anywhere. It is being used but in a dead function prnt_a3

I am running it as

Code:
cc -g -c test.c call1.c
ar q lib.a call1.o
cc -g -o test test.o lib.a

The executable gets build in HP Unix bit in Linux, it fails saying

Code:
call1.c:6: undefined reference to `a3'
collect2: ld returned 1 exit status

I don't know the concept/rationale behind the same. Smilie
HPUx just refers to the data definitions and it doesn't bother about the functions unless there is atleast 1 function being used from that routine (in which case, HP also gives error) ???

If anyone can suggest some reading material for the same, it'll also be great.

Thanks...

Last edited by Scott; 10-17-2012 at 12:42 PM.. Reason: After almost 5 years, you should know to use code tags :)
 

9 More Discussions You Might Find Interesting

1. Programming

Difference Between Unix and Linux Envoriment

This may/may not be a long answer to a short question. I am learning the C programming language at home.I have seen some good books on the UNIX programming enviroment.However, there were a few books that hinted towards the Linux programming enviroment.Is there any difference between the two as... (1 Reply)
Discussion started by: perrylx
1 Replies

2. UNIX for Dummies Questions & Answers

difference between unix and linux?

Ok, I'm confused. Can someone answer these (stupid) questions please for me? 1. What is the difference between unix and linux? 2. Is FreeBSD a unix distribution? 3. If not, then what is Unix? I actually gone to Unix.com because I thought this is it's official website where I could download... (1 Reply)
Discussion started by: RellioN
1 Replies

3. UNIX for Dummies Questions & Answers

Difference between UNIX and Linux

OK, I've used various versions of UNIX(Solaris, HPUX, etc..) over the years. Now the organization I work for is leaning towards more Linux based systems(Redhat, Suse, etc..) I do see differences in in comands and how to accomplish basic adminstration, but nothing mind blowing. So, what is it... (5 Replies)
Discussion started by: pbonilla
5 Replies

4. UNIX for Advanced & Expert Users

What is the difference between Unix & linux

:confused: Hi All Can anyone help me in finding the answer of the question mentioned below. What is the difference between Unix & linux ? Thanks in Advance to all CSaha (1 Reply)
Discussion started by: csaha
1 Replies

5. AIX

difference between AIx and Linux and Unix

Sir , Can any body explain the difference between linux , Unix and AIx on command Reference all the command on AIx and unix is same or not please reply (2 Replies)
Discussion started by: arif185
2 Replies

6. Shell Programming and Scripting

difference in unix vs. linux sort

Hi, I am using some codes that have been ported from unix to linux, and now the sorting no longer results in the desired ordering. I'm hoping to find a way to mimic the unix sort command in linux. The input file is structured the following: $> cat file.txt... (6 Replies)
Discussion started by: aj.schaeffer
6 Replies

7. UNIX for Dummies Questions & Answers

difference between unix and linux

Hi I am new to linux I have dout waht is the difference between UNIX and LINUX Is there any soft for insatallation for UNIX OS Thanks (0 Replies)
Discussion started by: sanjaya
0 Replies

8. Red Hat

Difference in conflict resolving between yum and rpm installs

Hi Guys, I am trying to test installation of a local rpm to my RHEL5 server. I am expecting it to fail as a previous version of the same package name exists. On using rpm -i this behaves as expected but yum install does not pick up the conflict. Here is the element of my SPEC file with the... (5 Replies)
Discussion started by: gazza-o
5 Replies

9. UNIX for Dummies Questions & Answers

Difference between UNIX and Linux

hi experts please tell me the real difference between unix and linux at kernel structure (1 Reply)
Discussion started by: linurag
1 Replies
GET_KERNEL_SYMS(2)					     Linux Programmer's Manual						GET_KERNEL_SYMS(2)

NAME
get_kernel_syms - retrieve exported kernel and module symbols SYNOPSIS
#include <linux/module.h> int get_kernel_syms(struct kernel_sym *table); DESCRIPTION
Note: This system call is present only in kernels before Linux 2.6. If table is NULL, get_kernel_syms() returns the number of symbols available for query. Otherwise, it fills in a table of structures: struct kernel_sym { unsigned long value; char name[60]; }; The symbols are interspersed with magic symbols of the form #module-name with the kernel having an empty name. The value associated with a symbol of this form is the address at which the module is loaded. The symbols exported from each module follow their magic module tag and the modules are returned in the reverse of the order in which they were loaded. RETURN VALUE
On success, returns the number of symbols copied to table. On error, -1 is returned and errno is set appropriately. ERRORS
There is only one possible error return: ENOSYS get_kernel_syms() is not supported in this version of the kernel. VERSIONS
This system call is present on Linux only up until kernel 2.4; it was removed in Linux 2.6. CONFORMING TO
get_kernel_syms() is Linux-specific. BUGS
There is no way to indicate the size of the buffer allocated for table. If symbols have been added to the kernel since the program queried for the symbol table size, memory will be corrupted. The length of exported symbol names is limited to 59 characters. Because of these limitations, this system call is deprecated in favor of query_module(2) (which is itself nowadays deprecated in favor of other interfaces described on its manual page). SEE ALSO
create_module(2), delete_module(2), init_module(2), query_module(2) Linux 2012-10-18 GET_KERNEL_SYMS(2)
All times are GMT -4. The time now is 01:05 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy