Sponsored Content
Top Forums UNIX for Advanced & Expert Users building a 64-bit archive library Post 89621 by echorak on Monday 14th of November 2005 04:41:20 PM
Old 11-14-2005
building a 64-bit archive library

I'm trying to build an archive library using the following script. It builds fine on 32-bit architectures, but when I try to build on a computer with 64-bit architecture I get this error message: /usr/bin/ld: warning: i386 architecture of input file `../lpdlib/lpdlib_byteswapio.a(system.o)' is incompatible with i386:x86-64 output

I'm extremely unfamiliar with library building commands and can't figure out how to specify the architecture of the input object files. Any clues?


Makefile:

FORT_COMP= pgf90
FORT_OPTS= -c -Mvect -Minfo -Munroll -Mnoframe -O2 -pc 64 -Mnofree -Mbyteswapio
ARCHIVE=ar rs
RANLIB =ls

LIB=lpdlib_byteswapio.a

SOURCE = cpart.f names.f polar.f random.f surfer.f system.f vform.f interpol.f polarst.f

$(LIB): $(SOURCE)
$(FORT_COMP) $(FORT_OPTS) $(?)
$(ARCHIVE) $(LIB) $(?:.f=.o)
$(RANLIB) $(LIB)
rm -f $(?:.f=.o)
 

9 More Discussions You Might Find Interesting

1. Programming

copying or concatinating string from 1st bit, leaving 0th bit

Hello, If i have 2 strings str1 and str2, i would like to copy/concatenate str2 to str1, from 1st bit leaving the 0th bit. How do i do it? (2 Replies)
Discussion started by: jazz
2 Replies

2. AIX

pthread library on AIX 5.3 64 bit

Hi, I am running my application on two AIX 5.3 64 bit boxes. In one of the boxes it is running fine without any problems. But on the other box it fails as soon as it is started and it core dumps. When I was analysing the core I was able to find the below two lines in addition to other... (4 Replies)
Discussion started by: allthanksquery
4 Replies

3. Shell Programming and Scripting

How to change a Makefile from building static library to shared library?

Hi: I have a library that it only offers Makefile for building static library. It built libxxx.a file. How do I in any way build a shared library? (either changin the Makefile or direct script or command to build shared library) Thanks. (1 Reply)
Discussion started by: cpthk
1 Replies

4. AIX

convert 32 bit shared library to 64bit

Hi I have .so & .o files which got compiled in 32bit environment; Is there any way to translate the above files to 64bit ; We are using AIX version 6 Thanks (1 Reply)
Discussion started by: mKarri
1 Replies

5. UNIX for Dummies Questions & Answers

Error building C program, library complication

Hi I'm relatively new to the unix environment, I'm about the install the root package from cern ROOT since I need this for a secondary program for DNA sequencing analysis. I however get into some trouble while I do this. I download the root file and ./configured it according the the macOSx64... (0 Replies)
Discussion started by: Bateman1001
0 Replies

6. Shell Programming and Scripting

How to handle 64 bit arithmetic operation at 32 bit compiled perl interpreter?H

Hi, Here is the issue. From the program snippet I have Base: 0x1800000000, Size: 0x3FFE7FFFFFFFF which are of 40 and 56 bits. SO I used use bignum to do the math but summing them up I always failed having correct result. perl interpreter info, perl, v5.8.8 built for... (0 Replies)
Discussion started by: rrd1986
0 Replies

7. Linux

Building a combined package for 32-bit and 64-bit using rpmbuild

I have a combined package for 32-bit and 64-bit Linux platform. On 64-bit system, all files are getting installed whatever mentioned in the %files section of the spec file.(Both 32-bit and 64-bit files). On 32-bit system also, all files are getting installed whatever mentioned in the %files... (1 Reply)
Discussion started by: snreddy_gopu
1 Replies

8. Windows & DOS: Issues & Discussions

Which version of Windows Vista to install with a product key? 32-bit or 64-bit?

Hello everyone. I bought a dell laptop (XPS M1330) online which came without a hard drive. There is a Windows Vista Ultimate OEMAct sticker with product key at the bottom case. I checked dell website (here) for this model and it says this model supports both 32 and 64-bit version of Windows... (4 Replies)
Discussion started by: milhan
4 Replies

9. Shell Programming and Scripting

Script to archive logs and sftp to another archive server

Requirement: Under fuse application we have placeholders called containers; Every container has their logs under: <container1>/data/log/fuse.log <container1>/data/log/fuse.log.1 <container1>/data/log/fuse.log.XX <container2>/data/log/fuse.log... (6 Replies)
Discussion started by: Arjun Goswami
6 Replies
dpkg-architecture(1)						  dpkg utilities					      dpkg-architecture(1)

NAME
dpkg-architecture - set and determine the architecture for package building SYNOPSIS
dpkg-architecture [option...] [command] DESCRIPTION
dpkg-architecture does provide a facility to determine and set the build and host architecture for package building. The build architecture is always determined by an external call to dpkg(1), and can not be set at the command line. You can specify the host architecture by providing one or both of the options -a and -t. The default is determined by an external call to gcc(1), or the same as the build architecture if CC or gcc are both not available. One out of -a and -t is sufficient, the value of the other will be set to a usable default. Indeed, it is often better to only specify one, because dpkg-architecture will warn you if your choice does not match the default. COMMANDS
-l Print the environment variables, one each line, in the format VARIABLE=value. This is the default action. -edebian-architecture Check for equality of architecture. By default debian-architecture is compared against the current Debian architecture, being the host. This action will not expand the architecture wildcards. Command finishes with an exit status of 0 if matched, 1 if not matched. -iarchitecture-wildcard Check for identity of architecture by expanding architecture-wildcard as an architecture wildcard and comparing against the current Debian architecture. Command finishes with an exit status of 0 if matched, 1 if not matched. -qvariable-name Print the value of a single variable. -s Print an export command. This can be used to set the environment variables using eval. -u Print a similar command to -s but to unset all variables. -c command Execute a command in an environment which has all variables set to the determined value. -L Print a list of valid architecture names. -?, --help Show the usage message and exit. --version Show the version and exit. OPTIONS
-adebian-architecture Set the Debian architecture. -tgnu-system-type Set the GNU system type. -f Values set by existing environment variables with the same name as used by the scripts are honored (i.e. used by dpkg-architecture), except if this force flag is present. This allows the user to override a value even when the call to dpkg-architecture is buried in some other script (for example dpkg-buildpackage(1)). TERMS
build machine The machine the package is built on. host machine The machine the package is built for. Debian architecture The Debian architecture string, which specifies the binary tree in the FTP archive. Examples: i386, sparc, hurd-i386. architecture wildcard An architecture wildcard is a special architecture string that will match any real architecture being part of it. The general form is <kernel>-<cpu>. Examples: linux-any, any-i386, hurd-any. GNU system type An architecture specification string consisting of two parts separated by a dash: cpu and system. Examples: i386-linux-gnu, sparc-linux-gnu, i386-gnu, x86_64-netbsd. VARIABLES
The following variables are set by dpkg-architecture: DEB_BUILD_ARCH The Debian architecture of the build machine. DEB_BUILD_ARCH_OS The Debian system name of the build machine. DEB_BUILD_ARCH_CPU The Debian cpu name of the build machine. DEB_BUILD_ARCH_BITS The pointer size of the build machine (in bits). DEB_BUILD_ARCH_ENDIAN The endianness of the build machine (little / big). DEB_BUILD_GNU_CPU The CPU part of DEB_BUILD_GNU_TYPE. DEB_BUILD_GNU_SYSTEM The System part of DEB_BUILD_GNU_TYPE. DEB_BUILD_GNU_TYPE The GNU system type of the build machine. DEB_BUILD_MULTIARCH The clarified GNU system type of the build machine, used for filesystem paths. DEB_HOST_ARCH The Debian architecture of the host machine. DEB_HOST_ARCH_OS The Debian system name of the host machine. DEB_HOST_ARCH_CPU The Debian cpu name of the host machine. DEB_HOST_ARCH_BITS The pointer size of the host machine (in bits). DEB_HOST_ARCH_ENDIAN The endianness of the host machine (little / big). DEB_HOST_GNU_CPU The CPU part of DEB_HOST_GNU_TYPE. DEB_HOST_GNU_SYSTEM The System part of DEB_HOST_GNU_TYPE. DEB_HOST_GNU_TYPE The GNU system type of the host machine. DEB_HOST_MULTIARCH The clarified GNU system type of the host machine, used for filesystem paths. DEBIAN
/RULES The environment variables set by dpkg-architecture are passed to debian/rules as make variables (see make documentation). However, you should not rely on them, as this breaks manual invocation of the script. Instead, you should always initialize them using dpkg-architecture with the -q option. Here are some examples, which also show how you can improve the cross compilation support in your package: Retrieving the GNU system type and forwarding it to ./configure: DEB_BUILD_GNU_TYPE := $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) DEB_HOST_GNU_TYPE := $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) [...] configure --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) Doing something only for a specific architecture: DEB_HOST_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH) ifeq ($(DEB_HOST_ARCH),alpha) [...] endif or if you only need to check the CPU or OS type, use the DEB_HOST_ARCH_CPU or DEB_HOST_ARCH_OS variables. Note that you can also rely on an external Makefile snippet to properly set all the variables that dpkg-architecture can provide: include /usr/share/dpkg/architecture.mk ifeq ($(DEB_HOST_ARCH),alpha) [...] endif In any case, you should never use dpkg --print-architecture to get architecture information during a package build. BACKWARD COMPATIBILITY
The /usr/share/dpkg/architecture.mk Makefile snippet is provided by dpkg-dev since version 1.16.1. The DEB_*_ARCH_BITS and DEB_*_ARCH_ENDIAN variables were introduced in dpkg-dev 1.15.4. Using them in debian/rules thus requires a build- dependency on dpkg-dev (>= 1.15.4). The DEB_HOST_ARCH_CPU and DEB_HOST_ARCH_OS variables were introduced in dpkg-dev 1.13.2. The -e and -i options were only introduced in relatively recent versions of dpkg-architecture (since dpkg 1.13.13). EXAMPLES
dpkg-buildpackage accepts the -a option and passes it to dpkg-architecture. Other examples: CC=i386-gnu-gcc dpkg-architecture -c debian/rules build eval `dpkg-architecture -u` Check if an architecture is equal to the current architecture or a given one: dpkg-architecture -elinux-alpha dpkg-architecture -amips -elinux-mips Check if the current architecture or an architecture provided with -a are Linux systems: dpkg-architecture -ilinux-any dpkg-architecture -ai386 -ilinux-any FILES
All these files have to be present for dpkg-architecture to work. Their location can be overridden at runtime with the environment variable DPKG_DATADIR. /usr/share/dpkg/cputable Table of known CPU names and mapping to their GNU name. /usr/share/dpkg/ostable Table of known operating system names and mapping to their GNU name. /usr/share/dpkg/triplettable Mapping between Debian architecture triplets and Debian architecture names. SEE ALSO
dpkg-buildpackage(1), dpkg-cross(1). Debian Project 2012-01-20 dpkg-architecture(1)
All times are GMT -4. The time now is 05:35 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy