f



How do you force link time symbol resolution to a particular library on linux g++

here is what we are trying to do

1. we have 2, 3rd party DMAPI libraries libdmapi.so(for gpfs) and
libdm.so(for xfs)

2. we have a base class (class lowlevel) with virtual interfaces, we
have two derived classes which
derive from lowlevel.cpp gpfslowlevel.cpp and xfslowlevel.cpp

3. each of the derived classes are packaged into their own .so and
each one individually links
with the respective 3rd party dmapi library.

(There is another layer in between the lowlevel and the 3rd party
DMAPI but I have left
it out for simplicity here)

4. we create a top level shared object called lowlevel.so which is
used by all the apps.


so the app will create a lowlevel object depending on which FS we deal
with at run time.
and then it makes calls on that object. Depending on which object is
making the call,
it should get routed to the right 3rd party DMAPI library.

but what is happening is that all calls are getting routed to the
first 3rd party dmapi library that
gets loaded, the first one that gets loaded is always the one that
appears first in the order of
libraries to be linked in the makefile.


***so that question is , is there a way to force symbol resolution to
happen to a particular
library at link time on linux? (w/o using an explicit dlopen call)***

I got this working on AIX. things gets routed properly to the right
library depending on which
object is making the calls.

I used -qmkshrobj on AIX WITHOUT the -brtl option. -brtl enables run
time linking.


I am attaching the code on both AIX and Linux.

(to make the binaries just execute the Makefile (so its a file with
all the commands not a real makefile).)
(to run the library run ./main)
going through the source and the makefiles may be a little laborious.

I thank you for your patience :) and would appreciate any help in the
matter.

thanks
Sudha




begin DMAPI.cpp
===========

#include <stdio.h>
#include <stdlib.h>
#include <errno.h>


/* Include FS specifc dmapi jheader files */
#include "DMAPI.h"
#ifdef XFSDMAPI
//xfs dmapi.h in linux src code path
///usr///src/linux-2.6.5-7.244/fs/dmapi/dmapi.h
#include <dmapi.h>
#endif

#ifdef GPFSDMAPI
//in /usr/include/dmapi.h on both linux + aix
#include <dmapi.h>
#endif

#ifdef JFSDMAPI
#include <sys/dmapi.h>
#endif



extern int errno;

char*
FS_DMAPI::init_dmapi(void)
{
        const char * func="DMAPI::init";

#ifdef JFSDMAPI
	logfile="/tmp/jfsdmapi.log";
#endif
#ifdef XFSDMAPI
	logfile="/tmp/xfsdmapi.log";
#endif
#ifdef GPFSDMAPI
	logfile="/tmp/gpfsdmapi.log";
#endif
        fprintf(stdout, "opening logfile %s for writing\n", logfile);

	if ((logfp = fopen(logfile, "a")) == NULL) {
        printf("Unable to open logfile %s for writing\n", logfile);
        exit(-1);
	}
        if (dmapi_ver==0 && dm_init_service(&dmapi_ver)<0) {
                fprintf(logfp, "Failed to initialize DMAPI service: %s
\n",
			strerror(errno));
		exit(-1);
	}

	fprintf(stdout, "Initialized DMAPI service successfully: %s\n",
			dmapi_ver);
	fprintf(logfp, "Initialized DMAPI service successfully: %s\n",
			dmapi_ver);
	fflush(logfp);
        return dmapi_ver;


}

void
FS_DMAPI::print_objtype(void)
{
#ifdef GPFSDMAPI
	fprintf(logfp, "GPFS\n");
	printf("GPFS\n");
#elif XFSDMAPI
	printf("XFS\n");
#elif JFSDMAPI
	fprintf(logfp, "JFS\n");
	printf("JFS\n");
#endif
	char *a = new char;
}
======================================= end DMAPI.cpp
begin DMAPI.h
===========

#ifndef DMAPI_H
#define DMAPI_H
#include <stdio.h>
#include <string.h>

namespace FS_DMAPI {
	char* init_dmapi(void);
	void print_objtype(void);
	static char *dmapi_ver;
	static char *logfile;
	static FILE *logfp;
};

#endif /* DMAPI_H */
======================================= end DMAPI.h
begin fs_lowlevel.cpp
===========

#include <stdio.h>
#include "lowlevel.h"
#include "jfs_lowlevel.h"
#include "gpfs_lowlevel.h"
#include "xfs_lowlevel.h"
#include "DMAPI.h"

char*
fs_lowlevel::init_dmapi(void)
{
	char *v;
        v = FS_DMAPI::init_dmapi();
	printf("fs_lowlevel: v : %s\n", v);
	return v;
}

void
fs_lowlevel::print_objtype()
{
        FS_DMAPI::print_objtype();
}

fs_lowlevel::fs_lowlevel()
{
#if 0
	fprintf(stdout, "Creating DMAPI object for FS %s\n", fs);
	po_dm = DMAPI::create(fs);
#endif
}

fs_lowlevel::~fs_lowlevel()
{
#if 0
	delete po_dm;
#endif

}

#if 0

char*
fs_lowlevel::init_dmapi(void)
{
        return(po_dm->init_dmapi());
}

void
fs_lowlevel::print_objtype()
{
        po_dm->print_objtype();
}
#endif
======================================= end fs_lowlevel.cpp
begin fs_lowlevel.h
===========

#ifndef FS_LOWLEVEL_H
#define FS_LOWLEVEL_H

#include "DMAPI.h"
class fs_lowlevel : public lowlevel {
public:
	char* init_dmapi(void);
        void print_objtype(void);
};
#endif
======================================= end fs_lowlevel.h
begin GPFS_DMAPI.h
===========

#ifndef GPFS_DMAPI_H
#define GPFS_DMAPI_H
#include <stdio.h>
#include <string.h>

namespace GPFS_DMAPI {
	char* init_dmapi(void);
	void print_objtype(void);
	/*static*/ char *dmapi_ver;
	/*static*/ char *logfile;
	/*static*/ FILE *logfp;
};
#if 0
char* GPFS_DMAPI::logfile="/tmp/gpfsdmapi.log";
char* GPFS_DMAPI::dmapi_ver=NULL;
FILE* GPFS_DMAPI::logfp=NULL;
#endif
#endif /* DMAPI_H */
======================================= end GPFS_DMAPI.h
begin gpfs_lowlevel.h
===========

#ifndef GPFS_LOWLEVEL_H
#define GPFS_LOWLEVEL_H

#include "DMAPI.h"

class gpfs_lowlevel : public lowlevel {
public:
	gpfs_lowlevel();
	~gpfs_lowlevel();
	char* init_dmapi(void);
        void print_objtype(void);
};
#endif
======================================= end gpfs_lowlevel.h
begin JFS_DMAPI.h
===========

#ifndef JFS_DMAPI_H
#define JFS_DMAPI_H
#include <stdio.h>
#include <string.h>

namespace JFS_DMAPI {
	char* init_dmapi(void);
	void print_objtype(void);
/* making these variables /*static*/ does not work for some reason */
	/*static*/ char *dmapi_ver;
	/*static*/ char *logfile;
	/*static*/ FILE *logfp;
};
#if 0
static char* JFS_DMAPI::logfile="/tmp/gpfsdmapi.log";
static char* JFS_DMAPI::dmapi_ver=NULL;
static FILE* JFS_DMAPI::logfp=NULL;
#endif
#endif /* DMAPI_H */
======================================= end JFS_DMAPI.h
begin jfs_lowlevel.h
===========

#ifndef JFS_LOWLEVEL_H
#define JFS_LOWLEVEL_H

#include "DMAPI.h"

class jfs_lowlevel : public lowlevel {
public:
	jfs_lowlevel();
	~jfs_lowlevel();
	char* init_dmapi(void);
        void print_objtype(void);
};
#endif
======================================= end jfs_lowlevel.h
begin lowlevel.cpp
===========

#include<stdio.h>
#include "lowlevel.h"
#include "gpfs_lowlevel.h"
#include "xfs_lowlevel.h"
#include <string.h>


#define JFS 0
#define GPFS 1
/*
main() {
        lowlevel *pobj;
        lowlevel *pobj1;

        pobj = lowlevel::create(0);
        pobj->init_dmapi();
        pobj1 = lowlevel::create(1);
        pobj1->init_dmapi();

        pobj->get_print_token();
        pobj1->get_print_token();
}
*/

lowlevel*
lowlevel :: create(char* fs)
{
	lowlevel *pd;
	if (!strcasecmp(fs, "gpfs"))
	{
		printf("creating gpfs lowlevel obj\n");
		pd = new gpfs_lowlevel();
	}
	if (!strcasecmp(fs, "xfs"))
	{
		printf("creating xfs lowlevbel obj\n");
		pd = new xfs_lowlevel();
	}
	return pd;
}
======================================= end lowlevel.cpp
begin lowlevel.h
===========

#ifndef LOWLEVEL_H
#define LOWLEVEL_H

#include<stdio.h>

class lowlevel
{
public:
static  lowlevel* create(char *fstype);
	virtual char* init_dmapi(void) = 0;
	virtual void print_objtype(void) = 0;
};
#endif
======================================= end lowlevel.h
begin main.cpp
===========

#include<stdio.h>
#include "lowlevel.h"

#if 0
#include "JFS_DMAPI.h"
#include "GPFS_DMAPI.h"
#endif

main() {
        lowlevel *pobj, *pobj1;
        pobj = lowlevel::create("xfs");
        if (pobj != NULL) {
                pobj->init_dmapi();
                pobj->print_objtype();
        } else {
                printf("pobj is NULL\n");
        }

        char *a = new char;
        pobj1 = lowlevel::create("gpfs");
        pobj1->init_dmapi();
        pobj1->print_objtype();
#if 0
        JFS_DMAPI pobj;
        GPFS_DMAPI pobj1;

        pobj.init_dmapi();
        pobj1.init_dmapi();
#endif
}
======================================= end main.cpp
begin xfs_lowlevel.h
===========

#ifndef XFS_LOWLEVEL_H
#define XFS_LOWLEVEL_H

#include "DMAPI.h"

class xfs_lowlevel : public lowlevel {
public:
	xfs_lowlevel();
	~xfs_lowlevel();
	char* init_dmapi(void);
        void print_objtype(void);
};
#endif
======================================= end xfs_lowlevel.h

Makefile
=======================================

# makefile w/o rtl + with namespace
ROOTDIR=`pwd`/..
CURDIR=`pwd`
BINDIR=`pwd`
#OPT="-qexpfile="
#OPT=-bE:
OPT=--version-script=
CC=/usr/bin/gcc

#create fs specific header files. I am not doign that here. That needs
#to be done.
#create the FS specific .o
${CC} -c -fPIC -frepo -g -DFS_DMAPI=XFS_DMAPI -DXFSDMAPI -o XFSDMAPI.o
DMAPI.cpp

${CC} -c -fPIC -frepo -g -DFS_DMAPI=GPFS_DMAPI -DGPFSDMAPI -o
GPFSDMAPI.o DMAPI.cpp

#create the fs specific DMAPI library.
#create the exports file
g++  -shared -fPIC   ${OPT}xfs_mapfile -frepo  -pthread -DUNIX -
D_PTHREADS -DCV_POSIX_THREADS -DPOSIX_THREADS -D_FILE_OFFSET_BITS=64 -
DLINUX_FS_U -DENABLE_NAS -DENABLE_DMR -DENABLE_DMAPI -DENABLE_CDR -
DUNIX -Dunix -DNO_JM_EXCEPTIONS -DNO_RSM -DNO_MMALERTS -DMAX_PATH=1024
-DCARCH=32 -Wimplicit -Wchar-subscripts -Wformat -Wpointer-arith -Wno-
deprecated -Wconversion -Wmissing-noreturn -DCV_LITTLE_ENDIAN -
DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONGLONG=8 -
DSOCKLEN_T.acklen_t -DFDSET=fd_set -DHAVE_ERRNO_H -DHAVE_GRANTPT -
DNO_GETOPT -DHAVE_GETHOSTNAME -DGETHOSTBYNAME_R_6 -DGETSERVBYNAME_R_6 -
DNO_LONGLONG_T -DNO_U_LONGLONG_T -DTIME_R_RET_TM -DCTIME2 -DGMTIME_R2 -
DLOCALTIME_R2 -DSTRTOK_R3 -DPWNAM_R5 -DHAVE_VFS -DNO_USHORT_T -
DNO_UINT_T -DHAVE_X_PUTINT32 -DATFORK_ARG=void -DLINUX_ACL -gstabs+ -
Wl,-rpath-link=. -Wl,-rpath=. -L. -shared -shared-libgcc XFSDMAPI.o -
L. -L/lib -o libXFSDMAPI.so -ldm

g++ -shared -fPIC  ${OPT}gpfs_mapfile  -frepo  -pthread -DUNIX -
D_PTHREADS -DCV_POSIX_THREADS -DPOSIX_THREADS -D_FILE_OFFSET_BITS=64 -
DLINUX_FS_U -DENABLE_NAS -DENABLE_DMR -DENABLE_DMAPI -DENABLE_CDR -
DUNIX -Dunix -DNO_JM_EXCEPTIONS -DNO_RSM -DNO_MMALERTS -DMAX_PATH=1024
-DCARCH=32 -Wimplicit -Wchar-subscripts -Wformat -Wpointer-arith -Wno-
deprecated -Wconversion -Wmissing-noreturn -DCV_LITTLE_ENDIAN -
DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONGLONG=8 -
DSOCKLEN_T.acklen_t -DFDSET=fd_set -DHAVE_ERRNO_H -DHAVE_GRANTPT -
DNO_GETOPT -DHAVE_GETHOSTNAME -DGETHOSTBYNAME_R_6 -DGETSERVBYNAME_R_6 -
DNO_LONGLONG_T -DNO_U_LONGLONG_T -DTIME_R_RET_TM -DCTIME2 -DGMTIME_R2 -
DLOCALTIME_R2 -DSTRTOK_R3 -DPWNAM_R5 -DHAVE_VFS -DNO_USHORT_T -
DNO_UINT_T -DHAVE_X_PUTINT32 -DATFORK_ARG=void -DLINUX_ACL -gstabs+ -
Wl,-rpath-link=. -Wl,-rpath=. -L. -shared -shared-libgcc GPFSDMAPI.o -
L. -o libGPFSDMAPI.so -ldmapi

#${CC} -qmkshrobj -g  -Wl,-bh:5 -qchars=signed -qinfo=pro -qcpluscmt -
DUNIX -Dunix -D_SVID3 -DAIX_FS_U -Dmthreads -DCV_POSIX_THREADS -
DPOSIX_THREADS -D_PTHREADS -D_THREAD_SAFE -D_LARGE_FILES -DENABLE_NAS -
DENABLE_DMAPI -DENABLE_DMR -Daix -DUNIX -Dunix -DNO_JM_EXCEPTIONS -
DNO_RSM -DNO_MMALERTS -DMAX_PATH=1024 -DCARCH=32 -DCV_BIG_ENDIAN -
DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONGLONG=8 -
DSOCKLEN_T=socklen_t -DFDSET=fd_set -DHAVE_ERRNO_H -DHAVE_GRANTPT -
DCONST_ICONV_IPTR -DHAVE_GETHOSTNAME -DGETHOSTBYNAME_R_3 -
DGETSERVBYNAME_R_4 -DCTIME2 -DGMTIME_R2 -DLOCALTIME_R2 -DSTRTOK_R3 -
DPWNAM_R5 -DHAVE_VFS -DHAVE_X_PUTINT32 -DHAVE_X_PUTHYPER -
DATFORK_ARG=void -DSOCKADDR_FAMILY_AT_2ND_BYTE -L${BINDIR} -o
libDMAPI.so -lGPFSDMAPI -lJFSDMAPI


${CC} -c -fPIC -frepo   -g -Dfs_lowlevel=xfs_lowlevel -DXFSLOWLEVEL -
DFS_DMAPI=XFS_DMAPI -DXFSDMAPI -o XFSLOWLEVEL.o fs_lowlevel.cpp

${CC} -c  -fPIC -frepo  -g -Dfs_lowlevel=gpfs_lowlevel -DGPFSLOWLEVEL -
DFS_DMAPI=GPFS_DMAPI -DGPFSDMAPI -o GPFSLOWLEVEL.o fs_lowlevel.cpp


#create the fs specific DMAPI library.
#create the exports file
g++ -shared -fPIC  ${OPT}xfs_llmapfile   -frepo  -pthread -DUNIX -
D_PTHREADS -DCV_POSIX_THREADS -DPOSIX_THREADS -D_FILE_OFFSET_BITS=64 -
DLINUX_FS_U -DENABLE_NAS -DENABLE_DMR -DENABLE_DMAPI -DENABLE_CDR -
DUNIX -Dunix -DNO_JM_EXCEPTIONS -DNO_RSM -DNO_MMALERTS -DMAX_PATH=1024
-DCARCH=32 -Wimplicit -Wchar-subscripts -Wformat -Wpointer-arith -Wno-
deprecated -Wconversion -Wmissing-noreturn -DCV_LITTLE_ENDIAN -
DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONGLONG=8 -
DSOCKLEN_T=socklen_t -DFDSET=fd_set -DHAVE_ERRNO_H -DHAVE_GRANTPT -
DNO_GETOPT -DHAVE_GETHOSTNAME -DGETHOSTBYNAME_R_6 -DGETSERVBYNAME_R_6 -
DNO_LONGLONG_T -DNO_U_LONGLONG_T -DTIME_R_RET_TM -DCTIME2 -DGMTIME_R2 -
DLOCALTIME_R2 -DSTRTOK_R3 -DPWNAM_R5 -DHAVE_VFS -DNO_USHORT_T -
DNO_UINT_T -DHAVE_X_PUTINT32 -DATFORK_ARG=void -DLINUX_ACL -gstabs+ -
Wl,-rpath-link=. -Wl,-rpath=. -shared-libgcc XFSLOWLEVEL.o -L. -o
libXFSLOWLEVEL.so -lXFSDMAPI

g++ -shared -fPIC  ${OPT}gpfs_llmapfile   -frepo  -pthread -DUNIX -
D_PTHREADS -DCV_POSIX_THREADS -DPOSIX_THREADS -D_FILE_OFFSET_BITS=64 -
DLINUX_FS_U -DENABLE_NAS -DENABLE_DMR -DENABLE_DMAPI -DENABLE_CDR -
DUNIX -Dunix -DNO_JM_EXCEPTIONS -DNO_RSM -DNO_MMALERTS -DMAX_PATH=1024
-DCARCH=32 -Wimplicit -Wchar-subscripts -Wformat -Wpointer-arith -Wno-
deprecated -Wconversion -Wmissing-noreturn -DCV_LITTLE_ENDIAN -
DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONGLONG=8 -
DSOCKLEN_T=socklen_t -DFDSET=fd_set -DHAVE_ERRNO_H -DHAVE_GRANTPT -
DNO_GETOPT -DHAVE_GETHOSTNAME -DGETHOSTBYNAME_R_6 -DGETSERVBYNAME_R_6 -
DNO_LONGLONG_T -DNO_U_LONGLONG_T -DTIME_R_RET_TM -DCTIME2 -DGMTIME_R2 -
DLOCALTIME_R2 -DSTRTOK_R3 -DPWNAM_R5 -DHAVE_VFS -DNO_USHORT_T -
DNO_UINT_T -DHAVE_X_PUTINT32 -DATFORK_ARG=void -DLINUX_ACL -gstabs+ -
Wl,-rpath-link=. -Wl,-rpath=. -shared-libgcc GPFSLOWLEVEL.o -L. -o
libGPFSLOWLEVEL.so -lGPFSDMAPI

g++ -shared -fPIC ${OPT}ll_mapfile   -frepo  -pthread -DUNIX -
D_PTHREADS -DCV_POSIX_THREADS -DPOSIX_THREADS -D_FILE_OFFSET_BITS=64 -
DLINUX_FS_U -DENABLE_NAS -DENABLE_DMR -DENABLE_DMAPI -DENABLE_CDR -
DUNIX -Dunix -DNO_JM_EXCEPTIONS -DNO_RSM -DNO_MMALERTS -DMAX_PATH=1024
-DCARCH=32 -Wimplicit -Wchar-subscripts -Wformat -Wpointer-arith -Wno-
deprecated -Wconversion -Wmissing-noreturn -DCV_LITTLE_ENDIAN -
DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONGLONG=8 -
DSOCKLEN_T=socklen_t -DFDSET=fd_set -DHAVE_ERRNO_H -DHAVE_GRANTPT -
DNO_GETOPT -DHAVE_GETHOSTNAME -DGETHOSTBYNAME_R_6 -DGETSERVBYNAME_R_6 -
DNO_LONGLONG_T -DNO_U_LONGLONG_T -DTIME_R_RET_TM -DCTIME2 -DGMTIME_R2 -
DLOCALTIME_R2 -DSTRTOK_R3 -DPWNAM_R5 -DHAVE_VFS -DNO_USHORT_T -
DNO_UINT_T -DHAVE_X_PUTINT32 -DATFORK_ARG=void -DLINUX_ACL -gstabs+ -
Wl,-rpath-link=. -Wl,-rpath=. -L. -shared-libgcc -I${ROOTDIR}/DMAPI -L$
{BINDIR} -o libLOWLEVEL.so lowlevel.cpp -lGPFSLOWLEVEL -lXFSLOWLEVEL

g++ -pthread -fPIC -DUNIX -D_PTHREADS -DCV_POSIX_THREADS -
DPOSIX_THREADS -DLINUX_FS_U -DENABLE_NAS -DENABLE_DMR -DENABLE_DMAPI -
DENABLE_CDR -DUNIX -Dunix -DNO_JM_EXCEPTIONS -DNO_RSM -DNO_MMALERTS -
DMAX_PATH=1024 -DCARCH=32 -Wimplicit -Wchar-subscripts -Wformat -
Wpointer-arith -Wno-deprecated -Wconversion -Wmissing-noreturn -
DCV_LITTLE_ENDIAN -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -
DSIZEOF_LONGLONG=8 -DSOCKLEN_T=socklen_t -DFDSET=fd_set -DHAVE_ERRNO_H
-DHAVE_GRANTPT -DNO_GETOPT -DHAVE_GETHOSTNAME -DGETHOSTBYNAME_R_6 -
DGETSERVBYNAME_R_6 -DNO_LONGLONG_T -DNO_U_LONGLONG_T -DTIME_R_RET_TM -
DCTIME2 -DGMTIME_R2 -DLOCALTIME_R2 -DSTRTOK_R3 -DPWNAM_R5 -DHAVE_VFS -
DNO_USHORT_T -DNO_UINT_T -DHAVE_X_PUTINT32 -DATFORK_ARG=void -
DLINUX_ACL -gstabs+ -Wl,-rpath-link=. -Wl,-rpath=. -L. -shared-libgcc -
L${BINDIR} -o main main.cpp -lLOWLEVEL

========================================================== end of
Makefile

0
sudha
7/5/2007 2:28:32 PM
comp.os.linux.portable 1227 articles. 0 followers. larwe (1373) is leader. Post Follow

0 Replies
478 Views

Similar Articles

[PageSpeed] 40

Reply:

Similar Artilces:

Linux, Linux, Linux
Hi, Interested in trying Linux? Well you came to comp.os.linux.advocacy for some reason, and you probably won't stay long. Here's a list of Linux distributions to choose from. Ubuntu http://www.ubuntu.com Newbie friendly and good support forums. SuSE http://www.novell.com/linux Pay for some support if you're not opposed to spending a little money. Fedora Core http://fedoraproject.org If you're more comfortable with your computer, try this one out. If you get frustrated, don't give up so easy. There is a wealth of information online for whichever distro you choose....

My Linux is not your Linux
To the denizens of comp.os.linux.advocacy! So many people demonstrate in this newsgroup that they know only a Linux of Hatred and Greed, of paranoia, and of a selfish sense of entitlement. They seem always to be behaving like monkeys in reaction to human dissenters, throwing feces at one another and beating their chests pretending to know something. My Linux is not that Linux. My Linux is the Linux of Love, of sharing, friendship, community. It is a uniquely human Linux and not one for monkeys. When I speak with fellow Linux users in real life (i.e. not in the monkeyhouse of COLA) they remind me of myself: practical, freedom-loving, anti-corporate. Here in COLA however they remind me of monkeys or spoiled brats or worse, corporate sysadmins. My Linux is not your Linux. It is the human Linux that acknowledges that Linux involves human work to create, that although it is free you are not entitled to it, that although it is created in large part by volunteers, they deserve to be paid for their gifts with at least gratitude. And that monkeys and self-entitled brats and sysadmins never thank anyone. yarmfelder@yahoo.com writes: > To the denizens of comp.os.linux.advocacy! You crossposted to gnu.misc.discuss. > My Linux is not your Linux. It is the human Linux > that acknowledges that Linux involves human work > to create, that although it is free you are not > entitled to it, that although it is created in large part > by volunteers, they deserve to be pa...

Linux!! Linux!!
From http://groups.google.ca/group/comp.os.linux.misc/about This month 16 t...@invalid.invalid 15 ahlstr...@launchmodem.com 14 goldee_loxnbag...@gmail.com 10 jhas...@newsguy.com 9 mil...@yoyo.org 9 hel...@deepsoft.com 9 hadronqu...@gmail.com 8 ronb02nos...@gmail.com 7 secret...@lxny.org 7 ignoramus8...@nospam.8345.invalid All time 5421 p...@oboe.it.uc3m.es 4508 michael+use...@www.heiming.de 3530 j...@dhh.gt.org 3066 hel...@deepsoft.com 2991 nike_jordan_...@yahoo.com.cn 2651 jdbe...@exit109.com 2474 gra...@visi.com 2216 nikejordangoo...@hotmail.com 1890 rkiesl...@mainmatter.com 1869 unruh-s...@physics.ubc.ca FRom http://groups.google.ca/group/comp.os.linux.setup/about Top posters This month 35 art...@sj.speakeasy.net 25 t...@invalid.invalid 21 a...@zimage.comant 15 Nico Kadel-Garcia 13 n...@youmustbejoking.demon.cu.invalid 8 dwhodg...@nomail.afraid.org 8 jhas...@newsguy.com 7 jul...@tampabay.rr.com 6 karthikbalagur...@gmail.com 5 Doug Freyburger All time 2999 p...@oboe.it.uc3m.es 1752 nka...@comcast.net 1510 scare.c...@oz.land 1458 michael+use...@www.heiming.de 1262 mjtob...@removethis_consultant.com 1132 nka...@bellatlantic.net 1128 kim...@lightlink.com 1106 nos...@nosite.zzz 1047 effla...@xnet.com 1007 m...@scrum.muc.de -- Member - Liberal International This is doctor@nl2k.ab.ca Ici doctor@nl2k.ab.ca God, Queen and country! Never Satan President Republic! Beware AntiChrist rising! http://twitter.com/rootnl2k http://www.faceboo...

I have Linux! I have Linux!
Ok, after two days of trying to get Windos 1900 installed and working , I sat down an hour ago and installed Linux. In an hour. Smirk. Ok, I will be honest. I did have some problems, but I believe they were of my own ignorance. 0) I started with trying to install Suse. However, I couldn't get it to install. Why? Because I didn't read the menu. There is a startup menu and the first entry is boot to harddisk. I thought that was the thing to do so I did it about 4 times. Then I gave up. However, I went back to it and subsequently realized that I should have chosen the 2nd men...

Why linux is linux
We don't destroy, we create. We don't imitate, we build. We are not a network, we are a personal OS. -- http://www.texeme.com Hi John, Attempting to Speak for Linux, You wrote: << We don't destroy, we create. We don't imitate, we build. We are not a network, we are a personal OS. >> Linux is more like this: << Like everything else, we consume and are consumed. We exchange ideas with everyone, to the point where it's almost impossible to track. We are artisans, not mass producers. >> Jeff Relf wrote: > Linux is mo...

Linux compatibility: is it possible to link freebsd code to a linux library?
Hello, Linux compatibility works fine to run linux binaries, but I'm wondering if it's possible to compile code on FreeBSD and link it to a linux library? I want to compile SAP-Rfc, a perl module, to perform RFC to an SAP server. The code must be linked to librfc.a, a library I can get only in binary format for linux (no source available). When I try to compile it I get the following error: > make cp lib/SAP/Config.pm blib/lib/SAP/Config.pm cp Rfc.pm blib/lib/SAP/Rfc.pm cp Iface.pm blib/lib/SAP/Iface.pm /usr/local/bin/perl /usr/local/lib/perl5/5.8.5/ExtUtils/xsubpp -typemap /usr/local/lib/perl5/5.8.5/ExtUtils/typemap Rfc.xs > Rfc.xsc && mv Rfc.xsc Rfc.c cc -c -I/usr/sap/rfcsdk/include -DAPPLLIB_EXP="/usr/local/lib/perl5/5.8.5/BSDPAN" -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe -I/usr/local/include -O -pipe -DVERSION=\"1.32\" -DXS_VERSION=\"1.32\" -DPIC -fPIC "-I/usr/local/lib/perl5/5.8.5/mach/CORE" -DSUMITELSE Rfc.c Running Mkbootstrap for SAP::Rfc () chmod 644 Rfc.bs rm -f blib/arch/auto/SAP/Rfc/Rfc.so LD_RUN_PATH="/compat/linux/lib" cc -shared -L/usr/local/lib Rfc.o -o blib/arch/auto/SAP/Rfc/Rfc.so -L/compat/linux/lib -lm -ldl -lpthread -L/usr/sap/rfcsdk/lib -lrfc /usr/libexec/elf/ld: cannot find -ldl *** Error code 1 I added /compat/linux/lib to the library search path. The library is found at configuration time, but not at link ti...

Unix / Linux Program Port to OS/2 with GCC and LIBC: HowTo Support / Use of Unix Function "Symbolic Link" in OS/2 Environment
Unix / Linux Program Port to OS/2 with GCC and LIBC: HowTo Support / Use of Unix Function "Symbolic Link" in OS/2 Environment Introduction by Example of the MPLAYER port 2007-07-16 22.00 first draft 1. Introduction and Credits The discussion of the MPlayer port comes up with the above subject. Thanks to Dave Yeo for the hint to the subject and the porting of the GNU Core Utils ( http://www.gnu.org/software/coreutils/) OS/2 port on Hobbes: http://hobbes.nmsu.edu/cgi-bin/h-search?key=coreutils_5.93 2.1 The Linux symbolic link function ( extract ) is introduced by the example of the MPlayer OS/2 port installation 2.2 Here are two of the directories / files used by MPlayer ~/.mplayer --> %MPLAYER_HOME% ~/.mplayer/font/ --> %MPLAYER_HOME%\font 2.3 Symbolic Link to a file, a directory In the Linux implementation "Symbolic Link" can be used to define/reference the location / the font to be used for OSD Here is a description of the function symbolic link in Linux (part of it - excerpt ) http://linux.about.com/od/commands/l/blcmdl1_ln.htm ln [OPTION]... TARGET [LINK_NAME] Here with mplayer it is used ln -s TARGET LINK_NAME LINK_NAME used here with the example: for a file "subfont" located at ~/.mplayer/subfont.fft ...

[News] New Releases of GNU/Linux: Bio-Linux and Portable Linux
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Bio-Linux goes global ,----[ Quote ] | The NERC Environmental Bioinformatics Centre (NEBC), based at the UK Centre | for Ecology & Hydrology, has released the latest version of NEBC Bio-Linux, a | specialised computing system designed for the environmental genomics research | community. `---- http://www.innovations-report.de/html/berichte/informationstechnologie/bio_linux_global_125318.html Portable Linux is now available ,----[ Quote ] | I've written a small application to create bootable, multi-purpose USB drives | out of Ubun...

[News] New Audiocasts With GNU/Linux: Linux Outlaws, Linux Link Tech Show
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Linux Outlaws 153 - Tinfoil Wallpaper Millionaire ,----[ Quote ] | This week on Linux Outlaws: Google and OSI | fighting over WebM, FSF enforces GPL in the | iTunes Store, Poettering now aiming at the | init system, Microsoft sponsoring LinuxTag, | Pac-Man madness and much more… `---- http://linuxoutlaws.com/podcast/153 The Linux Link Tech Show #356 6/2/10 http://tllts.org/mirror.php?fname=tllts_356-06-02-10.ogg EU targets toxic chemicals in electronics ,----[ Quote ] | A group of chip makers including IBM, Samsung ...

[News] Making Linux More Like OS X and OS X More Like Linux
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Mac OS X - Highly Customized Linux ,----[ Quote ] | Few players in the Linux arena creates their Linux distro to look like Mac OS | X or Windows.... | | Here I'm going to list some distro which looks like Mac OS. `---- http://linuxtreat.blogspot.com/2008/07/mac-os-x-highly-customized-linux.html A Linux User's Guide to Mac ,----[ Quote ] | Take a deep breath and repeat after me: A computer is just a tool. It is only | so good as it serves to make life better for users. A "better" life is | obviously not the same thing fo...

[News] [Linux] Best Time to Switch to Desktop Linux; Oracle's Linux Gains Momentum
Never a better time to switch to Linux ,----[ Quote ] | With Microsoft having launched their new Vista operating system on | an unwilling public, there's never been a better time to abandon | Microsoft to their fate and switch to either Linux or an Apple Mac. `---- http://dirkgently.wordpress.com/2007/04/30/never-a-better-time-to-switch-to-linux/ Oracle's Linux initiative continues to build momentum against Red Hat ,----[ Quote ] | Oracle continued its enterprise Linux power play last week, this | time bringing a host of big-name enterprise IT partners into the | fold of its Unbrea...

[News] Heap of New GNU/Linux Audiocasts: Full Circle, Linux Link Tech Show, Linux Basement...
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Full Circle Podcast #8: More Opinion Than You Can Handle ,----[ Quote ] | News: Mostly Maverick Development. | | Games: Ed’s been reviewing Osmos, but | playing on an X-Box; Dave reviews a Nexus | One Android phone. | | Opinion: Why we need Lubuntu | | Interview: Part I of the Lubuntu Project | | Opinion: What services do we want in | UbuntuOne | | Keynote: Part II of Mark Shuttleworth’s | keynote from UDS `---- http://fullcirclemagazine.org/2010/06/10/full-circle-podcast-8-more-opinion-than-you-can-handle/ The Linux Link Tech Show - ...

10 years of Linux, or how you can waste time slowly......(More proof that Linux is a freaking waste of time)
10 years of Linux, or how you can waste time slowly https://bbs.archlinux.org/viewtopic.php?id=81868&p=1 //QUOTE So, not that many of you would care, but this month I have a rather odd anniversary: it was 10 years ago that I laid eyes on my first Linux ditribution, and it was the thing that "started it all" for me. I was in the 9th grade, still using Windows, but I had access to a Redhat box, and I loved it. I remember playing Sokoban a lot on it, and I seem to remember Netscape. I also remember BitchX, but that was years after. Any man would consider this a hap...

[News] Mobile Linux Runs Palm OS Applications; New 3G Linux Phones; Open Linux Phone Made More Attractive
Mobile Linux running Palm OS apps demoed ,----[ Quote ] | Access hopes ALP and its Eclipse-based Developer Suite will | provide a long-awaited forward migration path for the many | thousands of "Garnet OS" (recently renamed from "Palm OS") | applications developed throughout the decades since "Palm-Pilot" | first became a household word, in the 1980s. `---- http://www.linuxdevices.com/news/NS2968683379.html Linux powers pair of 3G dual-mode phones ,----[ Quote ] | MontaVista says its device-oriented Linux operating system was | used in two new 3G business sma...

[News] Real-Time Linux Comes to Korea; Linux-powered PAC Claimed 8 Times Faster
Concurrent Partners With KCEI To Resell Real-Time Linux Image Generation Solutions In South Korea ,----[ Quote ] | At the heart of each ImaGen visual server and iHawk system is Concurrent’s | RedHawk Linux. `---- http://home.businesswire.com/portal/site/google/index.jsp?ndmViewId=news_view&newsId=20070828005022&newsLang=en UEIPAC Gets Major Speed Increase -- Linux-powered PAC is now 8 Times Faster ,----[ Quote ] | United Electronic Industries (UEI) is pleased to announce a major | enhancement/upgrade to the popular UEIPAC series of programmable automation | controllers. `--...

Linux should disown elementary OS Linux for the Scam that it is.
No Problem'o, DooFuS. I can blame it all on the Linux Mint TEXT size being = too small on my 19 inch monitor. As Moi was saying... I tried two more additional downloads of elementary OS Linux. Both of them= likewise failed. While they could have been discriminating against Moi for his ZERO contribu= tion, I will be damned if I am going to PAY GOOD money for something when t= here is no guarantee that the stupid DOWNLOAD wont fail, JUST TO FIND OUT t= hat it WONT work at all on my computer hardware, let alone whether OR NOT i= t will actually do what is being claimed. Moi has NEVER experienced a download problem with Linux Mint. From what I have seen, elementary OS Linux is a scam, much like those Windo= ws come ons that claim that they can fix your computer problems merely by m= ucking with the Windows Registry. The Linux World should disown elementary OS Linux for being the Scam that i= t is. Or, can any phony distro claim to be Linux? Yeah, where are the Linu= x police? On 7/8/2015 8:22 AM, John Gohde wrote: > No Problem'o, DooFuS. I can blame it all on the Linux Mint TEXT size > being too small on my 19 inch monitor. I blame it on your small cerebrum. > The Linux World should disown elementary OS Linux for being the Scam > that it is. Or, can any phony distro claim to be Linux? Yeah, where > are the Linux police? The Linux police are outside your door right now. I'm not kidding. Look out...

Embedded Linux Vs. Real time Linux
Hi all, I have some newbie questions regarding embedded Linux targeted a real time application. We are on my job considering the use of Linux in the next generation of our product line. We are looking into either a ordinary Linux port (Montavista) or a Real Time port of Linux (Montavista or Wind River). My questions are: Will we still be able to write specific program code for some of the hardware interrupts which still operates completely independant of the linux kernel? For instance a DMA interrupt that needs real time handling will it be possible for this interrupt to immedi...

[News] [Linux] New Versions of Engarde Secure Linux, Core Linux, OpenTLE (Thai Linux)
EnGarde Secure Linux 3.0.14 Released ,----[ Quote ] | A fully functional secure Linux platform distribution, this release | features a vastly improved intrusion detection Attack Monitor. `---- http://www.linuxlookup.com/2007/may/04/engarde_secure_linux_3_0_14_released Core GNU/Linux 2.0 Released! ,----[ Quote ] | Core contains nothing beyond what is required to perform these tasks. | Core is primarily designed for experienced Linux users, though it has | found an audience with those looking to learn about the internals | and operation of a Linux system. `---- http://www.coredistro.org/news-20070501 http://distrowatch.com/table.php?distribution=linuxtle ...

The non-Linux Linux
http://en.wikipedia.org/wiki/GNU_Hurd http://www.archhurd.org/ The Hurd aims to surpass the Unix kernel in functionality, security, and stability, while remaining largely compatible with it. Can this compete with the now Google-backed Linux kernel? taka0038@gmail.com wrote: > http://en.wikipedia.org/wiki/GNU_Hurd > > http://www.archhurd.org/ > > The Hurd aims to surpass the Unix kernel in functionality, security, and > stability, while remaining largely compatible with it. > > Can this compete with the now Google-backed Linux kernel? Yes. In a...

(Linux/Matlab) Symbolic Links
Hi all, During installation of R2006a I forgot to check the 'symbolic links' box. Is there any way for me to set these links now that installation is completed? I don't want to reinstall.... On 2006-11-18, Matthew Jankowski <mattjankowski@yahoo.com> wrote: > > During installation of R2006a I forgot to check the 'symbolic links' > box. Is there any way for me to set these links now that installation > is completed? I don't want to reinstall.... cd /path/to/where/you/want/symlinks ln -s $MATLAB/bin/matlab . ln -s $MATLAB/bin/mex . subbing /where/you/...

ROX Linux and ROX on OS X and arm linux
Hi I've just just done some searches on Google for ROX linux, and ROX on other platforms. I've not managed to find anything. Is ROX available for OS X? Is ROX available for Acorn\Iyonix Arm linux? Did ROX Linux ever come to anything? I was a member of the mailing list a while ago, it started off interesting and then seemed to go off on a tangent then it all went quiet. It seemed like an excellent idea, a linux distro structured like RISC OS. It would have been an ideal compliment to a RISC OS system, same UI but different set of applications (probably not quite so consiste...

Resolution of symbols at link time
The following seems like it could be useful to programmers, especially when working on large projects. But is it practical? Are there any tools which already do this? For a program to be linked allow the programmer to specify just two things: 1) the program, 2) a list of directories that the link process should search to find symbols. For example, link example.o -L directory0 -L directory1 -L directory2 ... The idea is that such a link command would examine example.o and identify all external symbols. For each external symbol it would look in the specified directories fo...

Web resources about - How do you force link time symbol resolution to a particular library on linux g++ - comp.os.linux.portable

Display resolution - Wikipedia, the free encyclopedia
For screen sizes (typically in inches, measured on the diagonal), see Display size . For a list of particular display resolutions, see Graphic ...

Google releases Resizer web tool to test Material Design at various resolutions
The Material Design Guidelines are considered a living document by Google’s designers and receive constant updates and new additions. To help ...

Adobe Lightroom mobile for iOS handles full resolution images
Back in February, Adobe updated Lightroom mobile for Android to include the ability to open, edit and export images at their full resolution. ...

Duncan introduces resolution authorizing Gitmo lawsuit - FOX Carolina 21
South Carolina Rep. Jeff Duncan introduced legislation Tuesday that would give the House of Representatives the authority to file a lawsuit against ...

5 information security resolutions you can’t afford to ignore
Shutterstock . I’m not the biggest fan of New Year’s resolutions. Statistics show that 80 percent of New Year’s resolutions will actually fail. ...

Saudi Arabia Arms Embargo: EU Passes Resolution To Stop Humanitarian Breaches In Yemen Civil War
The embargo will give inspectors time to investigate whether humanitarian laws have been breached in Yemen.

Vassar anti-Israel activists attempt stealth academic boycott Resolution
Vague language used to claim passing BDS resolution includes academic boycott

Adobe Lightroom for iOS Gains Full Resolution Support, 3D Touch in Camera Roll Browser
... its Lightroom photography app for iOS devices to version 2.2, adding two small but notable features. Lightroom is now able to output full resolution ...

Resolution for 2016: Simplify Yourself in 5 Steps
The resolution-making season seems to be long over. And yet many of us keep struggling not to fail in improving their imperfect selves.

VESA Updates Display Port Standard with USB-C Connectivity and Support for Higher Resolutions
The Video Electronics Standards Association (VESA) has published the latest version of the transfer protocol DisplayPort 1.4 which is focused ...

Resources last updated: 3/4/2016 10:13:17 AM