01-08-2009
Mostly all there is is "-march" option. I don't know about the -xarch option, but it looks specific to the SPARC hardware, not Solaris. Similarly, you want warnings specific to a 64-bit architecture, not Linux. Looking through the man pages, one will find references to Operating Systems being compiled on specific architectures. One thing you can do is use the "-mlong32" option which forces all "long" specifications and pointers to 32 bits. This might not be a problem unless you expect the program to require more than 32 bits of addressing space (IE, more than 4GB of memory).
9 More Discussions You Might Find Interesting
1. AIX
Hi all,
I am facing problem in porting to 64 bit AIX especially with compiling options to compile and run under 64 bit kernel.Can any one put some light on the issue
thanks in advance
vishal (14 Replies)
Discussion started by: vishalzone2002
14 Replies
2. UNIX for Dummies Questions & Answers
Alright. As the title states, I'm working with a UNIX based web server(Sun Fire v120). The problem I'm currently having is trying to properly configure it for hosting. If anyone could help me out, it would be great.
Much thanks.
-XTIZ3 (2 Replies)
Discussion started by: XTIZ3
2 Replies
3. Solaris
Hi,
I am trying to convert 32-bit code to 64-bit.
I have defined function
int main()
{
int* l;
size_t len1;
fun(len1);
return 0;
}
void fun(int* ptr)
{
cout<<"\nsizeof(ptr)"<<sizeof(ptr);
}
However while compiling getting error as :
Error: Formal argument ptr... (2 Replies)
Discussion started by: amit_27
2 Replies
4. Red Hat
I am just trying to get the warning while compiling for 64-bit on Linux
>>
uname -a
Linux mms4.es.cpth.ie 2.6.9-22.ELsmp #1 SMP Mon Sep 19 18:00:54 EDT 2005 x86_64 x86_64 x86_64 GNU/Linux
===================================
Written test.c file which conatin :
#include<stdio.h>... (1 Reply)
Discussion started by: amit_27
1 Replies
5. HP-UX
Dear All,
I am new on Tru 64 bit Unix platform. I have a database server "HP AlphaServer ES45" version p5.1 of Tru Ux 64 bit installed. I have 4 hard drives in this system (1,2,3,4). My 4th hard drive is damaged which contain Oracle database files including partitions on 4th drives... (2 Replies)
Discussion started by: hellozishan
2 Replies
6. HP-UX
Hello All,
I have HP Openview storage data protector version 5.5. When I am going to write my backup I have an error message saying "Connot Open Device /dev/rmt/0mn"
Follownig is my output:
# ls -l /dev/rmt/0mn
crw-rw-rw- 2 bin bin 205 0x080140 Jan 17 16:41 /dev/rmt/0mn
# uname -a... (2 Replies)
Discussion started by: hellozishan
2 Replies
7. HP-UX
i am trying to build on hpux-itanium 64 bit platform. my application needs to link to 64 bit version of the library libCsup.so
This library is present in /usr/lib/hpux64/libCsup.so
I am specifying the location of this library as linker flags
LDFLAGS := -Wl,-N -Wl,+s... (0 Replies)
Discussion started by: skyineyes
0 Replies
8. Red Hat
Hi,
I installed Db2 9.7 on RHEL5 32bit .
Instance Name is db2inst1 amd in that i created database as mydb.
I exported env variables for
classpath ,db2dir,db2instance
LD_LIBRARY_PATH ,PATH ,ODBC, ODBCHOME ,ODBCINI
My application needs ODBC connectivity and so I modified odbc.ini file . ... (0 Replies)
Discussion started by: roopalidalvi231
0 Replies
9. Solaris
Hello,
I am fairly new to Solaris so please be gentle ;). I am trying to install apache 2.4.3 adapting a script one of my colleagues wrote for version 2.2.23. The problem lies in the fact that I am aiming at creating a 64bit package hence I've already amended the script to reflect that. I... (3 Replies)
Discussion started by: teotao
3 Replies
LEARN ABOUT OPENSOLARIS
id32_lookup
id32_alloc(9F) Kernel Functions for Drivers id32_alloc(9F)
NAME
id32_alloc, id32_free, id32_lookup - 32-bit driver ID management routines
SYNOPSIS
#include <sys/ddi.h>
#include <sys/id32.h>
uint32_t id32_alloc(void *ptr, int flag);
void id32_free(uint32_t token);
void *id32_lookup(uint32_t token);
INTERFACE LEVEL
Solaris architecture specific (Solaris DDI).
PARAMETERS
ptr any valid 32- or 64-bit pointer
flag determines whether caller can sleep for memory (see kmem_alloc(9F) for a description)
DESCRIPTION
These routines were originally developed so that device drivers could manage 64-bit pointers on devices that save space only for 32-bit
pointers.
Many device drivers need to pass a 32-bit value to the hardware when attempting I/O. Later, when that I/O completes, the only way the
driver has to identify the request that generated that I/O is via a "token". When the I/O is initiated, the driver passes this token to the
hardware. When the I/O completes the hardware passes back this 32-bit token.
Before Solaris supported 64-bit pointers, device drivers just passed a raw 32-bit pointer to the hardware. When pointers grew to be 64 bits
this was no longer possible. The id32_*() routines were created to help drivers translate between 64-bit pointers and a 32-bit token.
Given a 32- or 64-bit pointer, the routine id32_alloc() allocates a 32-bit token, returning 0 if KM_NOSLEEP was specified and memory could
not be allocated. The allocated token is passed back to id32_lookup() to obtain the original 32- or 64-bit pointer.
The routine id32_free() is used to free an allocated token. Once id32_free() is called, the supplied token is no longer valid.
Note that these routines have some degree of error checking. This is done so that an invalid token passed to id32_lookup() will not be
accepted as valid. When id32_lookup() detects an invalid token it returns NULL. Calling routines should check for this return value so that
they do not try to dereference a NULL pointer.
CONTEXT
These functions can be called from user or interrupt context. The routine id32_alloc() should not be called from interrupt context when the
KM_SLEEP flag is passed in. All other routines can be called from interrupt or kernel context.
SEE ALSO
kmem_alloc(9F)
Writing Device Drivers
SunOS 5.11 12 Dec 2001 id32_alloc(9F)