From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27122 invoked by alias); 26 May 2008 19:22:24 -0000 Received: (qmail 27095 invoked by uid 367); 26 May 2008 19:22:23 -0000 Date: Mon, 26 May 2008 19:22:00 -0000 Message-ID: <20080526192223.27080.qmail@sourceware.org> From: cagney@sourceware.org To: frysk-cvs@sourceware.org Subject: [SCM] master: For JNI link in libelf and libdw. X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 24f79f595d4d0b1123dc6270f76de92f3b0b9ad4 X-Git-Newrev: fb8fcd60afcbedee536157c09b1b77a69d7e8fa0 Mailing-List: contact frysk-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: frysk-cvs-owner@sourceware.org Reply-To: frysk@sourceware.org X-SW-Source: 2008-q2/txt/msg00290.txt.bz2 The branch, master has been updated via fb8fcd60afcbedee536157c09b1b77a69d7e8fa0 (commit) via 6f92530fe3aa15b5397a424d87fc413494ddc430 (commit) via 256e575785d5bfd77e76e7f8b1d006cac5036eb6 (commit) from 24f79f595d4d0b1123dc6270f76de92f3b0b9ad4 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit fb8fcd60afcbedee536157c09b1b77a69d7e8fa0 Author: Andrew Cagney Date: Mon May 26 15:20:58 2008 -0400 For JNI link in libelf and libdw. frysk-sys/ChangeLog 2008-05-26 Andrew Cagney * Makefile.am (JniRunner): Load libdw and libelf. commit 6f92530fe3aa15b5397a424d87fc413494ddc430 Author: Andrew Cagney Date: Mon May 26 14:40:31 2008 -0400 Delete unused extern internal_buffer declaration. frysk-sys/lib/dwfl/ChangeLog 2008-05-26 Andrew Cagney * cni/ElfData.cxx (internal_buffer): Delete extern declaration. * jni/ElfData.cxx (internal_buffer): Update. commit 256e575785d5bfd77e76e7f8b1d006cac5036eb6 Author: Andrew Cagney Date: Mon May 26 14:35:23 2008 -0400 Delete stray cni extern declaration; never referenced. frysk-sys/lib/dwfl/ChangeLog 2008-05-26 Andrew Cagney * cni/ElfPrstatus.cxx (internalThreads): Delete extern declaration. * jni/ElfPrXFPRegSet.cxx (internalThreads): Ditto. * jni/ElfPrFPRegSet.cxx (internalThreads): Ditto. * jni/ElfPrstatus.cxx (internalThreads): Ditto. * cni/ElfPrFPRegSet.cxx (internalThreads): Ditto. * cni/ElfPrXFPRegSet.cxx (internalThreads): Ditto. ----------------------------------------------------------------------- Summary of changes: frysk-sys/ChangeLog | 2 ++ frysk-sys/Makefile.am | 9 +++++++-- frysk-sys/lib/dwfl/ChangeLog | 10 ++++++++++ frysk-sys/lib/dwfl/cni/ElfData.cxx | 5 +---- frysk-sys/lib/dwfl/cni/ElfPrFPRegSet.cxx | 3 +-- frysk-sys/lib/dwfl/cni/ElfPrXFPRegSet.cxx | 3 +-- frysk-sys/lib/dwfl/cni/ElfPrstatus.cxx | 3 +-- frysk-sys/lib/dwfl/jni/ElfData.cxx | 5 +---- frysk-sys/lib/dwfl/jni/ElfPrFPRegSet.cxx | 4 +--- frysk-sys/lib/dwfl/jni/ElfPrXFPRegSet.cxx | 3 +-- frysk-sys/lib/dwfl/jni/ElfPrstatus.cxx | 4 +--- 11 files changed, 27 insertions(+), 24 deletions(-) First 500 lines of diff: diff --git a/frysk-sys/ChangeLog b/frysk-sys/ChangeLog index 89258b2..16a563b 100644 --- a/frysk-sys/ChangeLog +++ b/frysk-sys/ChangeLog @@ -1,5 +1,7 @@ 2008-05-26 Andrew Cagney + * Makefile.am (JniRunner): Load libdw and libelf. + * Makefile.am (JNIXX_CLASSES): Add DwAttributeNotFoundException, ElfException, and java.lang.Long. diff --git a/frysk-sys/Makefile.am b/frysk-sys/Makefile.am index 10221c5..2e342ed 100644 --- a/frysk-sys/Makefile.am +++ b/frysk-sys/Makefile.am @@ -89,9 +89,14 @@ CLEANFILES += JniRunner JniRunner: | frysk-sys.jar libfrysk-sys-jni.so rm -f $@.tmp echo "#!/bin/sh" >> $@.tmp - echo "export LD_PRELOAD=libstdc++.so.6" >> $@.tmp + echo "export LD_PRELOAD=\"libstdc++.so.6 libdw.so libelf.so\"" >> $@.tmp echo "# hack to hopefully find the right libstdc++.so" >> $@.tmp - echo "export LD_LIBRARY_PATH=.:/usr/lib64:/usr/lib" >> $@.tmp + echo "export LD_LIBRARY_PATH=.\\" >> $@.tmp + echo ":$$(cd ../frysk-imports/elfutils/libdw && pwd)\\" >> $@.tmp + echo ":$$(cd ../frysk-imports/elfutils/libelf && pwd)\\" >> $@.tmp + echo ":$$(cd ../frysk-imports/elfutils/backends && pwd)\\" >> $@.tmp + echo ":/usr/lib64\\" >> $@.tmp + echo ":/usr/lib" >> $@.tmp echo "export CLASSPATH=\\" >> $@.tmp echo "$(CLASSPATH):frysk-sys.jar:JniRunner.jar" >> $@.tmp echo "if test \$$# -eq 0 ; then" >> $@.tmp diff --git a/frysk-sys/lib/dwfl/ChangeLog b/frysk-sys/lib/dwfl/ChangeLog index d16b387..29ea8b2 100644 --- a/frysk-sys/lib/dwfl/ChangeLog +++ b/frysk-sys/lib/dwfl/ChangeLog @@ -1,5 +1,15 @@ 2008-05-26 Andrew Cagney + * cni/ElfData.cxx (internal_buffer): Delete extern declaration. + * jni/ElfData.cxx (internal_buffer): Update. + + * cni/ElfPrstatus.cxx (internalThreads): Delete extern declaration. + * jni/ElfPrXFPRegSet.cxx (internalThreads): Ditto. + * jni/ElfPrFPRegSet.cxx (internalThreads): Ditto. + * jni/ElfPrstatus.cxx (internalThreads): Ditto. + * cni/ElfPrFPRegSet.cxx (internalThreads): Ditto. + * cni/ElfPrXFPRegSet.cxx (internalThreads): Ditto. + * jni/ElfSymbol.cxx: Implement. * jni/ElfSection.cxx: Implement. * jni/ElfRel.cxx: Implement. diff --git a/frysk-sys/lib/dwfl/cni/ElfData.cxx b/frysk-sys/lib/dwfl/cni/ElfData.cxx index d0f49e5..bb1f971 100644 --- a/frysk-sys/lib/dwfl/cni/ElfData.cxx +++ b/frysk-sys/lib/dwfl/cni/ElfData.cxx @@ -92,11 +92,8 @@ lib::dwfl::ElfData::getBytes() return ret; } -extern jbyteArray internal_buffer; - void -lib::dwfl::ElfData::elf_data_set_buff (jlong size){ - +lib::dwfl::ElfData::elf_data_set_buff(jlong size) { jbyte *bytes = elements(internal_buffer); ((Elf_Data*) this->pointer)->d_buf = bytes; ((Elf_Data*) this->pointer)->d_size = size; diff --git a/frysk-sys/lib/dwfl/cni/ElfPrFPRegSet.cxx b/frysk-sys/lib/dwfl/cni/ElfPrFPRegSet.cxx index 63a7834..86f8dae 100644 --- a/frysk-sys/lib/dwfl/cni/ElfPrFPRegSet.cxx +++ b/frysk-sys/lib/dwfl/cni/ElfPrFPRegSet.cxx @@ -1,6 +1,6 @@ // This file is part of the program FRYSK. // -// Copyright 2006, 2007, Red Hat, Inc. +// Copyright 2006, 2007, 2008, Red Hat, Inc. // // FRYSK is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by @@ -83,7 +83,6 @@ lib::dwfl::ElfPrFPRegSet::fillMemRegion(jbyteArray buffer, jlong startAddress) return this->raw_registers->length; } -extern ArrayList internalThreads; jlong lib::dwfl::ElfPrFPRegSet::getNoteData(ElfData *data) { void *elf_data = ((Elf_Data*)data->getPointer())->d_buf; diff --git a/frysk-sys/lib/dwfl/cni/ElfPrXFPRegSet.cxx b/frysk-sys/lib/dwfl/cni/ElfPrXFPRegSet.cxx index 5268a78..6a38485 100644 --- a/frysk-sys/lib/dwfl/cni/ElfPrXFPRegSet.cxx +++ b/frysk-sys/lib/dwfl/cni/ElfPrXFPRegSet.cxx @@ -1,6 +1,6 @@ // This file is part of the program FRYSK. // -// Copyright 2007, Red Hat, Inc. +// Copyright 2007, 2008, Red Hat, Inc. // // FRYSK is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by @@ -87,7 +87,6 @@ lib::dwfl::ElfPrXFPRegSet::fillMemRegion(jbyteArray buffer, jlong startAddress) return this->raw_registers->length; } -extern ArrayList internalThreads; jlong lib::dwfl::ElfPrXFPRegSet::getNoteData(ElfData *data) { void *elf_data = ((Elf_Data*)data->getPointer())->d_buf; diff --git a/frysk-sys/lib/dwfl/cni/ElfPrstatus.cxx b/frysk-sys/lib/dwfl/cni/ElfPrstatus.cxx index 36f60e4..9696225 100644 --- a/frysk-sys/lib/dwfl/cni/ElfPrstatus.cxx +++ b/frysk-sys/lib/dwfl/cni/ElfPrstatus.cxx @@ -1,6 +1,6 @@ // This file is part of the program FRYSK. // -// Copyright 2006,2007 Red Hat, Inc. +// Copyright 2006, 2007, 2008 Red Hat, Inc. // // FRYSK is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by @@ -263,7 +263,6 @@ lib::dwfl::ElfPrstatus::fillMemRegion(jbyteArray buffer, jlong startAddress) } -extern ArrayList internalThreads; jlong lib::dwfl::ElfPrstatus::getNoteData(ElfData *data) { diff --git a/frysk-sys/lib/dwfl/jni/ElfData.cxx b/frysk-sys/lib/dwfl/jni/ElfData.cxx index b04f357..33552c4 100644 --- a/frysk-sys/lib/dwfl/jni/ElfData.cxx +++ b/frysk-sys/lib/dwfl/jni/ElfData.cxx @@ -86,12 +86,9 @@ lib::dwfl::ElfData::getBytes(jnixx::env env) { return ret; } -extern jnixx::jbyteArray internal_buffer; - void lib::dwfl::ElfData::elf_data_set_buff (jnixx::env env, jlong size) { - fprintf(stderr, "accessing a global buffer\n"); - jbyteArrayElements bytes = jbyteArrayElements(env, internal_buffer); + jbyteArrayElements bytes = jbyteArrayElements(env, GetInternal_buffer(env)); fprintf(stderr, "saving a pointer into the JNI\n"); (ELF_DATA_POINTER)->d_buf = bytes.elements(); (ELF_DATA_POINTER)->d_size = bytes.length(); diff --git a/frysk-sys/lib/dwfl/jni/ElfPrFPRegSet.cxx b/frysk-sys/lib/dwfl/jni/ElfPrFPRegSet.cxx index 8338732..3eaf148 100644 --- a/frysk-sys/lib/dwfl/jni/ElfPrFPRegSet.cxx +++ b/frysk-sys/lib/dwfl/jni/ElfPrFPRegSet.cxx @@ -78,7 +78,6 @@ lib::dwfl::ElfPrFPRegSet::fillMemRegion(jnixx::env env, return length; } -extern ArrayList internalThreads; jlong lib::dwfl::ElfPrFPRegSet::getNoteData(jnixx::env env, ElfData data) { void *elf_data = ((Elf_Data*)data.getPointer(env))->d_buf; GElf_Nhdr *nhdr = (GElf_Nhdr *)elf_data; @@ -114,8 +113,7 @@ jlong lib::dwfl::ElfPrFPRegSet::getNoteData(jnixx::env env, ElfData data) { memcpy(buf.elements(), ((unsigned char *)elf_data)+note_data_loc, nhdr->n_descsz); - fprintf(stderr, "acessing global internalThreads\n"); - internalThreads.add(env, jbuf); + GetInternalThreads(env).add(env, jbuf); // Move pointer along, now we have processed the first thread note_loc += (sizeof (GElf_Nhdr) + ((nhdr->n_namesz + 0x03) & ~0x3)) + nhdr->n_descsz; diff --git a/frysk-sys/lib/dwfl/jni/ElfPrXFPRegSet.cxx b/frysk-sys/lib/dwfl/jni/ElfPrXFPRegSet.cxx index d4e06ef..e21a481 100644 --- a/frysk-sys/lib/dwfl/jni/ElfPrXFPRegSet.cxx +++ b/frysk-sys/lib/dwfl/jni/ElfPrXFPRegSet.cxx @@ -79,7 +79,6 @@ lib::dwfl::ElfPrXFPRegSet::fillMemRegion(jnixx::env env, return length; } -extern ArrayList internalThreads; jlong lib::dwfl::ElfPrXFPRegSet::getNoteData(jnixx::env env, ElfData data) { void *elf_data = ((Elf_Data*)data.getPointer(env))->d_buf; @@ -115,7 +114,7 @@ jlong lib::dwfl::ElfPrXFPRegSet::getNoteData(jnixx::env env, jbyteArrayElements buf = jbyteArrayElements(env, jbuf); memcpy(buf.elements(),((unsigned char *)elf_data)+note_data_loc, nhdr->n_descsz); - internalThreads.add(env, jbuf); + GetInternalThreads(env).add(env, jbuf); buf.release(); jbuf.DeleteLocalRef(env); } diff --git a/frysk-sys/lib/dwfl/jni/ElfPrstatus.cxx b/frysk-sys/lib/dwfl/jni/ElfPrstatus.cxx index 93fabbf..704a230 100644 --- a/frysk-sys/lib/dwfl/jni/ElfPrstatus.cxx +++ b/frysk-sys/lib/dwfl/jni/ElfPrstatus.cxx @@ -264,7 +264,6 @@ lib::dwfl::ElfPrstatus::fillMemRegion(jnixx::env env, } -extern ArrayList internalThreads; jlong lib::dwfl::ElfPrstatus::getNoteData(jnixx::env env, ElfData data) { void *elf_data = ((Elf_Data*)data.getPointer(env))->d_buf; @@ -299,8 +298,7 @@ lib::dwfl::ElfPrstatus::getNoteData(jnixx::env env, ElfData data) { memcpy(buf.elements(), ((unsigned char *)elf_data)+note_data_loc, nhdr->n_descsz); - fprintf(stderr, "acessing global internal threads\n"); - internalThreads.add(env, jbuf); + GetInternalThreads(env).add(env, jbuf); // Move pointer along, now we have processed the first thread note_loc += (sizeof (GElf_Nhdr) + ((nhdr->n_namesz + 0x03) & ~0x3)) + nhdr->n_descsz; hooks/post-receive -- frysk system monitor/debugger