From he at uninett.no Fri Sep 3 11:58:50 2004 From: he at uninett.no (Havard Eidnes) Date: Fri, 03 Sep 2004 11:58:50 +0200 (CEST) Subject: [irrtoolset]Getting irrtoolset 4.8.2 built on NetBSD-2.0_BETA Message-ID: <20040903.115850.113836505.he@uninett.no> Hi, "me again". This time around I've had to apply a few patches to get IRRToolSet 4.8.2 built on NetBSD 2.0_BETA, which uses gcc 3.3.3. The patches to get it to build are attached below. Some comments (some of which has been made before -- can someone please incorporate them for the next version?): - IRRToolSet, being a user program with any aspirations of portability, has no business using implementation-specific headers or names from the implementation name space. I'm referring to usage of "#include <_G_config.h>" and usage of the types _G_uint32_t and _G_int32_t. It appears that the only two thing the code uses from _G_config.h are those 32-bit types and the _G_ARGS macro. The former can just as well be replaced with uint32_t / int32_t from , the latter can be omitted, as it only seems sensible to require that the C++ compiler supports ANSI function argument declarations. - I've once again fixed various makefile templates not to hide the actual compiler invocation, suppressing any flags, defines and include directories. This makes it easier to follow and reproduce the compiler invocations for debugging/porting. In particular, I found this little pearl, which I fixed/simplified: .c.o: - @echo Compiling: `basename $<` - @echo $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFINES) $(INCDIRS) $< - @$(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFINES) $(INCDIRS) $< + $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFINES) $(INCDIRS) $< .cc.o: - @echo Compiling: `basename $<` - @echo $(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(DEFINES) $(INCDIRS) $< - @$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(DEFINES) $(INCDIRS) $< + $(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(DEFINES) $(INCDIRS) $< - The README file seems to be a bit inconsistent with respect to the requirements on the host platform. Point 0 under installations mentions GCC 3.3.2 and GNU Make, whereas further down it is said that the development platform is using gcc-2.95.3 and libstdc++-2.9.0. Under "Known problems" it is said that on Dec Alpha's, one needs to use GNU make. However, it is evident from trying to use NetBSD's make that it is a universal requirement that the package absolutely needs GNU make to build. I've not supplied any patch against this file. With these changes in place it builds and install the subset of the programs which the irrtoolset 4.8.2 package is set up to build and install, and peval seems to work well enough for our intended purpose. Regards, - H?vard -------------- next part -------------- diff -ru IRRToolSet-4.8.2/src/Core/gnu/ACG.cc IRRToolSet-4.8.2-new/src/Core/gnu/ACG.cc --- IRRToolSet-4.8.2/src/Core/gnu/ACG.cc 2002-03-27 12:32:59.000000000 +0100 +++ IRRToolSet-4.8.2-new/src/Core/gnu/ACG.cc 2004-09-02 14:24:51.000000000 +0200 @@ -123,7 +123,7 @@ // #define RANDOM_PERM_SIZE 64 -_G_uint32_t randomPermutations[RANDOM_PERM_SIZE] = { +uint32_t randomPermutations[RANDOM_PERM_SIZE] = { 0xffffffff, 0x00000000, 0x00000000, 0x00000000, // 3210 0x0000ffff, 0x00ff0000, 0x00000000, 0xff000000, // 2310 0xff0000ff, 0x0000ff00, 0x00000000, 0x00ff0000, // 3120 @@ -149,7 +149,7 @@ // SEED_TABLE_SIZE must be a power of 2 // #define SEED_TABLE_SIZE 32 -static _G_uint32_t seedTable[SEED_TABLE_SIZE] = { +static uint32_t seedTable[SEED_TABLE_SIZE] = { 0xbdcc47e5, 0x54aea45d, 0xec0df859, 0xda84637b, 0xc8c6cb4f, 0x35574b01, 0x28260b7d, 0x0d07fdbf, 0x9faaeeb0, 0x613dd169, 0x5ce2d818, 0x85b9e706, @@ -171,15 +171,15 @@ // LC_C = result of a long trial & error series = 3907864577 // -static const _G_uint32_t LC_A = 66049; -static const _G_uint32_t LC_C = 3907864577u; -static inline _G_uint32_t LCG(_G_uint32_t x) +static const uint32_t LC_A = 66049; +static const uint32_t LC_C = 3907864577u; +static inline uint32_t LCG(uint32_t x) { return( x * LC_A + LC_C ); } -ACG::ACG(_G_uint32_t seed, int size) +ACG::ACG(uint32_t seed, int size) { register int l; initialSeed = seed; @@ -205,7 +205,7 @@ // Allocate the state table & the auxillary table in a single malloc // - state = new _G_uint32_t[stateSize + auxSize]; + state = new uint32_t[stateSize + auxSize]; auxState = &state[stateSize]; reset(); @@ -217,7 +217,7 @@ void ACG::reset() { - register _G_uint32_t u; + register uint32_t u; if (initialSeed < SEED_TABLE_SIZE) { u = seedTable[ initialSeed ]; @@ -247,7 +247,7 @@ lcgRecurr = u; - assert(sizeof(double) == 2 * sizeof(_G_int32_t)); + assert(sizeof(double) == 2 * sizeof(int32_t)); } ACG::~ACG() @@ -261,16 +261,16 @@ // Returns 32 bits of random information. // -_G_uint32_t +uint32_t ACG::asLong() { - _G_uint32_t result = state[k] + state[j]; + uint32_t result = state[k] + state[j]; state[k] = result; j = (j <= 0) ? (stateSize-1) : (j-1); k = (k <= 0) ? (stateSize-1) : (k-1); short int auxIndex = (result >> 24) & (auxSize - 1); - register _G_uint32_t auxACG = auxState[auxIndex]; + register uint32_t auxACG = auxState[auxIndex]; auxState[auxIndex] = lcgRecurr = LCG(lcgRecurr); // @@ -278,7 +278,7 @@ // do not want to run off the end of the permutation table. // This insures that we have always got four entries left. // - register _G_uint32_t *perm = & randomPermutations[result & 0x3c]; + register uint32_t *perm = & randomPermutations[result & 0x3c]; result = *(perm++) & auxACG; result |= *(perm++) & ((auxACG << 24) diff -ru IRRToolSet-4.8.2/src/Core/gnu/ACG.h IRRToolSet-4.8.2-new/src/Core/gnu/ACG.h --- IRRToolSet-4.8.2/src/Core/gnu/ACG.h 2002-03-27 12:32:59.000000000 +0100 +++ IRRToolSet-4.8.2-new/src/Core/gnu/ACG.h 2004-09-02 14:24:51.000000000 +0200 @@ -42,26 +42,26 @@ class ACG : public RNG { - _G_uint32_t initialSeed; // used to reset generator + uint32_t initialSeed; // used to reset generator int initialTableEntry; - _G_uint32_t *state; - _G_uint32_t *auxState; + uint32_t *state; + uint32_t *auxState; short stateSize; short auxSize; - _G_uint32_t lcgRecurr; + uint32_t lcgRecurr; short j; short k; protected: public: - ACG(_G_uint32_t seed = 0, int size = 55); + ACG(uint32_t seed = 0, int size = 55); virtual ~ACG(); // // Return a long-words word of random bits // - virtual _G_uint32_t asLong(); + virtual uint32_t asLong(); virtual void reset(); }; diff -ru IRRToolSet-4.8.2/src/Core/gnu/MLCG.cc IRRToolSet-4.8.2-new/src/Core/gnu/MLCG.cc --- IRRToolSet-4.8.2/src/Core/gnu/MLCG.cc 2002-03-27 12:32:59.000000000 +0100 +++ IRRToolSet-4.8.2-new/src/Core/gnu/MLCG.cc 2004-09-02 14:24:51.000000000 +0200 @@ -25,7 +25,7 @@ #define SEED_TABLE_SIZE 32 -static _G_int32_t seedTable[SEED_TABLE_SIZE] = { +static int32_t seedTable[SEED_TABLE_SIZE] = { 0xbdcc47e5, 0x54aea45d, 0xec0df859, 0xda84637b, 0xc8c6cb4f, 0x35574b01, 0x28260b7d, 0x0d07fdbf, 0x9faaeeb0, 0x613dd169, 0x5ce2d818, 0x85b9e706, @@ -36,7 +36,7 @@ 0xb89cff2b, 0x12164de1, 0xa865168d, 0x32b56cdf }; -MLCG::MLCG(_G_int32_t seed1, _G_int32_t seed2) +MLCG::MLCG(int32_t seed1, int32_t seed2) { initialSeedOne = seed1; initialSeedTwo = seed2; @@ -46,8 +46,8 @@ void MLCG::reset() { - _G_int32_t seed1 = initialSeedOne; - _G_int32_t seed2 = initialSeedTwo; + int32_t seed1 = initialSeedOne; + int32_t seed2 = initialSeedTwo; // // Most people pick stupid seed numbers that do not have enough @@ -79,9 +79,9 @@ seedTwo = (seedTwo % 2147483397) + 1; } -_G_uint32_t MLCG::asLong() +uint32_t MLCG::asLong() { - _G_int32_t k = seedOne % 53668; + int32_t k = seedOne % 53668; seedOne = 40014 * (seedOne-k * 53668) - k * 12211; if (seedOne < 0) { @@ -94,7 +94,7 @@ seedTwo += 2147483399; } - _G_int32_t z = seedOne - seedTwo; + int32_t z = seedOne - seedTwo; if (z < 1) { z += 2147483562; } diff -ru IRRToolSet-4.8.2/src/Core/gnu/MLCG.h IRRToolSet-4.8.2-new/src/Core/gnu/MLCG.h --- IRRToolSet-4.8.2/src/Core/gnu/MLCG.h 2002-03-27 12:32:59.000000000 +0100 +++ IRRToolSet-4.8.2-new/src/Core/gnu/MLCG.h 2004-09-02 14:24:51.000000000 +0200 @@ -29,55 +29,55 @@ // class MLCG : public RNG { - _G_int32_t initialSeedOne; - _G_int32_t initialSeedTwo; - _G_int32_t seedOne; - _G_int32_t seedTwo; + int32_t initialSeedOne; + int32_t initialSeedTwo; + int32_t seedOne; + int32_t seedTwo; protected: public: - MLCG(_G_int32_t seed1 = 0, _G_int32_t seed2 = 1); + MLCG(int32_t seed1 = 0, int32_t seed2 = 1); // // Return a long-words word of random bits // - virtual _G_uint32_t asLong(); + virtual uint32_t asLong(); virtual void reset(); - _G_int32_t seed1(); - void seed1(_G_int32_t); - _G_int32_t seed2(); - void seed2(_G_int32_t); - void reseed(_G_int32_t, _G_int32_t); + int32_t seed1(); + void seed1(int32_t); + int32_t seed2(); + void seed2(int32_t); + void reseed(int32_t, int32_t); }; -inline _G_int32_t +inline int32_t MLCG::seed1() { return(seedOne); } inline void -MLCG::seed1(_G_int32_t s) +MLCG::seed1(int32_t s) { initialSeedOne = s; reset(); } -inline _G_int32_t +inline int32_t MLCG::seed2() { return(seedTwo); } inline void -MLCG::seed2(_G_int32_t s) +MLCG::seed2(int32_t s) { initialSeedTwo = s; reset(); } inline void -MLCG::reseed(_G_int32_t s1, _G_int32_t s2) +MLCG::reseed(int32_t s1, int32_t s2) { initialSeedOne = s1; initialSeedTwo = s2; diff -ru IRRToolSet-4.8.2/src/Core/gnu/Makefile.in IRRToolSet-4.8.2-new/src/Core/gnu/Makefile.in --- IRRToolSet-4.8.2/src/Core/gnu/Makefile.in 2002-03-27 14:56:37.000000000 +0100 +++ IRRToolSet-4.8.2-new/src/Core/gnu/Makefile.in 2004-09-02 14:37:17.000000000 +0200 @@ -60,12 +60,10 @@ .y.o: .c.o: - @echo Compiling: `basename $<` - @$(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFINES) $(INCDIRS) $< + $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFINES) $(INCDIRS) $< .cc.o: - @echo Compiling: `basename $<` - @$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(DEFINES) $(INCDIRS) $< + $(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(DEFINES) $(INCDIRS) $< .SUFFIXES: .cc diff -ru IRRToolSet-4.8.2/src/Core/gnu/RNG.cc IRRToolSet-4.8.2-new/src/Core/gnu/RNG.cc --- IRRToolSet-4.8.2/src/Core/gnu/RNG.cc 2002-03-27 12:32:59.000000000 +0100 +++ IRRToolSet-4.8.2-new/src/Core/gnu/RNG.cc 2004-09-02 14:24:51.000000000 +0200 @@ -40,7 +40,7 @@ if (!initialized) { - assert (sizeof(double) == 2 * sizeof(_G_uint32_t)); + assert (sizeof(double) == 2 * sizeof(uint32_t)); // // The following is a hack that I attribute to diff -ru IRRToolSet-4.8.2/src/Core/gnu/RNG.h IRRToolSet-4.8.2-new/src/Core/gnu/RNG.h --- IRRToolSet-4.8.2/src/Core/gnu/RNG.h 2002-03-27 12:32:59.000000000 +0100 +++ IRRToolSet-4.8.2-new/src/Core/gnu/RNG.h 2004-09-02 14:24:51.000000000 +0200 @@ -23,16 +23,16 @@ #include #include -#include <_G_config.h> +#include union PrivateRNGSingleType { // used to access floats as unsigneds float s; - _G_uint32_t u; + uint32_t u; }; union PrivateRNGDoubleType { // used to access doubles as unsigneds double d; - _G_uint32_t u[2]; + uint32_t u[2]; }; // @@ -46,7 +46,7 @@ // // Return a long-words word of random bits // - virtual _G_uint32_t asLong() = 0; + virtual uint32_t asLong() = 0; virtual void reset() = 0; // // Return random bits converted to either a float or a double diff -ru IRRToolSet-4.8.2/src/Core/gnu/std.h IRRToolSet-4.8.2-new/src/Core/gnu/std.h --- IRRToolSet-4.8.2/src/Core/gnu/std.h 2002-03-27 12:32:59.000000000 +0100 +++ IRRToolSet-4.8.2-new/src/Core/gnu/std.h 2004-09-02 14:35:27.000000000 +0200 @@ -19,7 +19,7 @@ #ifndef _std_h #define _std_h 1 -#include <_G_config.h> +#include #include #include #include @@ -31,7 +31,7 @@ extern "C" { #ifndef HAVE_STRINGS_H -int strcasecmp _G_ARGS((const char*, const char*)); +int strcasecmp (const char*, const char*); #endif // HAVE_STRINGS_H } diff -ru IRRToolSet-4.8.2/src/Core/network/Makefile.in IRRToolSet-4.8.2-new/src/Core/network/Makefile.in --- IRRToolSet-4.8.2/src/Core/network/Makefile.in 2002-03-27 14:56:37.000000000 +0100 +++ IRRToolSet-4.8.2-new/src/Core/network/Makefile.in 2004-09-02 14:24:51.000000000 +0200 @@ -48,12 +48,10 @@ .y.o: .c.o: - @echo Compiling: `basename $<` - @$(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFINES) $(INCDIRS) $< + $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFINES) $(INCDIRS) $< .cc.o: - @echo Compiling: `basename $<` - @$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(DEFINES) $(INCDIRS) $< + $(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(DEFINES) $(INCDIRS) $< .SUFFIXES: .cc diff -ru IRRToolSet-4.8.2/src/Core/sched/Makefile.in IRRToolSet-4.8.2-new/src/Core/sched/Makefile.in --- IRRToolSet-4.8.2/src/Core/sched/Makefile.in 2002-03-27 14:56:37.000000000 +0100 +++ IRRToolSet-4.8.2-new/src/Core/sched/Makefile.in 2004-09-02 14:37:36.000000000 +0200 @@ -45,12 +45,10 @@ .y.o: .c.o: - @echo Compiling: `basename $<` - @$(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFINES) $(INCDIRS) $< + $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFINES) $(INCDIRS) $< .cc.o: - @echo Compiling: `basename $<` - @$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(DEFINES) $(INCDIRS) $< + $(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(DEFINES) $(INCDIRS) $< .SUFFIXES: .cc diff -ru IRRToolSet-4.8.2/src/Core/sys/Makefile.in IRRToolSet-4.8.2-new/src/Core/sys/Makefile.in --- IRRToolSet-4.8.2/src/Core/sys/Makefile.in 2002-03-27 14:56:37.000000000 +0100 +++ IRRToolSet-4.8.2-new/src/Core/sys/Makefile.in 2004-09-02 14:37:46.000000000 +0200 @@ -65,12 +65,10 @@ .y.o: .c.o: - @echo Compiling: `basename $<` - @$(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFINES) $(INCDIRS) $< + $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFINES) $(INCDIRS) $< .cc.o: - @echo Compiling: `basename $<` - @$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(DEFINES) $(INCDIRS) $< + $(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(DEFINES) $(INCDIRS) $< .SUFFIXES: .cc diff -ru IRRToolSet-4.8.2/src/Core/util/Makefile.in IRRToolSet-4.8.2-new/src/Core/util/Makefile.in --- IRRToolSet-4.8.2/src/Core/util/Makefile.in 2004-07-30 12:58:10.000000000 +0200 +++ IRRToolSet-4.8.2-new/src/Core/util/Makefile.in 2004-09-02 14:38:00.000000000 +0200 @@ -49,14 +49,10 @@ .y.o: .c.o: - @echo Compiling: `basename $<` - @echo $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFINES) $(INCDIRS) $< - @$(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFINES) $(INCDIRS) $< + $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFINES) $(INCDIRS) $< .cc.o: - @echo Compiling: `basename $<` - @echo $(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(DEFINES) $(INCDIRS) $< - @$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(DEFINES) $(INCDIRS) $< + $(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(DEFINES) $(INCDIRS) $< .SUFFIXES: .cc diff -ru IRRToolSet-4.8.2/src/aoe/Makefile.in IRRToolSet-4.8.2-new/src/aoe/Makefile.in --- IRRToolSet-4.8.2/src/aoe/Makefile.in 2002-04-09 13:48:46.000000000 +0200 +++ IRRToolSet-4.8.2-new/src/aoe/Makefile.in 2004-09-02 14:24:51.000000000 +0200 @@ -128,12 +128,10 @@ mv lex.`basename $< .l`.c `basename $<`.cc .c.o: - @echo Compiling: `basename $<` - @$(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFINES) $(INCDIRS) $< + $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFINES) $(INCDIRS) $< .cc.o: - @echo Compiling: `basename $<` - @$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(DEFINES) $(INCDIRS) $< + $(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(DEFINES) $(INCDIRS) $< # Transformations applied to each line of the file: # eliminate blank lines diff -ru IRRToolSet-4.8.2/src/gnug++/std.h IRRToolSet-4.8.2-new/src/gnug++/std.h --- IRRToolSet-4.8.2/src/gnug++/std.h 2002-03-27 12:32:57.000000000 +0100 +++ IRRToolSet-4.8.2-new/src/gnug++/std.h 2004-09-02 14:39:28.000000000 +0200 @@ -19,7 +19,7 @@ #ifndef _std_h #define _std_h 1 -#include <_G_config.h> +#include #include #include #include @@ -29,7 +29,7 @@ #include extern "C" { -int strcasecmp _G_ARGS((const char*, const char*)); +int strcasecmp (const char*, const char*); } #endif diff -ru IRRToolSet-4.8.2/src/roe/Makefile.in IRRToolSet-4.8.2-new/src/roe/Makefile.in --- IRRToolSet-4.8.2/src/roe/Makefile.in 2002-03-27 14:56:39.000000000 +0100 +++ IRRToolSet-4.8.2-new/src/roe/Makefile.in 2004-09-02 14:24:52.000000000 +0200 @@ -72,12 +72,10 @@ mv lex.`basename $< .l`.c $<.cc .c.o: - @echo Compiling: `basename $<` - @$(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFINES) $(INCDIRS) $< + $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFINES) $(INCDIRS) $< .cc.o: - @echo Compiling: `basename $<` - @$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(DEFINES) $(INCDIRS) $< + $(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(DEFINES) $(INCDIRS) $< # Transformations applied to each line of the file: # eliminate blank lines diff -ru IRRToolSet-4.8.2/src/rpsl/gnu/std.h IRRToolSet-4.8.2-new/src/rpsl/gnu/std.h --- IRRToolSet-4.8.2/src/rpsl/gnu/std.h 2002-03-27 12:33:00.000000000 +0100 +++ IRRToolSet-4.8.2-new/src/rpsl/gnu/std.h 2004-09-02 14:33:07.000000000 +0200 @@ -19,7 +19,7 @@ #ifndef _std_h #define _std_h 1 -#include <_G_config.h> +#include #include #include #include @@ -29,7 +29,7 @@ #include extern "C" { -int strcasecmp _G_ARGS((const char*, const char*)); +int strcasecmp (const char*, const char*); } #endif From he at uninett.no Fri Sep 3 12:03:11 2004 From: he at uninett.no (Havard Eidnes) Date: Fri, 03 Sep 2004 12:03:11 +0200 (CEST) Subject: [irrtoolset]IRRToolset 4.8.2 - segfaults on SuSE9 under certain conditions In-Reply-To: <41347C8C.8080709@gtstelecom.ro> References: <41345BE4.2010908@gtstelecom.ro> <877jrf8osk.fsf@paperino.noc.seabone.net> <41347C8C.8080709@gtstelecom.ro> Message-ID: <20040903.120311.22496044.he@uninett.no> > The command used to cause the segfault is: > > @RtConfig printSuperPrefixRanges "%p/%l\n" filter AS-ROMANIA I see this problem on NetBSD-2.0_BETA as well. The symptom is that if I run this interactively, it will process the command, spit out all the prefixes, return with a prompt, and when that prompt is given EOF, it crashes. I tried running ut under gdb, and have a stack trace, but I suspect that the debugging info is somehow faulty (I don't understand why the code points to the line it does). For what it's worth, here it is: RtConfig> ^D Program received signal SIGSEGV, Segmentation fault. 0x08099d79 in Object::~Object() (this=0x8137300) at ../../Core/util/List.hh:97 97 forw->back = back; (gdb) where #0 0x08099d79 in Object::~Object() (this=0x8137300) at ../../Core/util/List.hh:97 #1 0x0809c94a in AttrClass::~AttrClass() (this=0x812eb80) at rpsl_attr.cc:379 #2 0x080a2241 in Schema::~Schema() (this=0x8107040) at schema.cc:70 #3 0x080c1eaa in __static_initialization_and_destruction_0(int, int) ( __initialize_p=0, __priority=65535) at schema_rpsl.cc:670 #4 0x080c38de in _GLOBAL__D__ZN6Schema15dictionary_textE () at /usr/include/g++/bits/locale_facets.h:214 #5 0x0804baf5 in __dtors () #6 0x0804bbba in __do_global_dtors_aux () #7 0x080d1535 in fini_fallthru () #8 0x4821912f in __cxa_finalize () from /usr/lib/libc.so.12 #9 0x48218ee0 in exit () from /usr/lib/libc.so.12 #10 0x0804b902 in ___start () (gdb) p forw $1 = (ListNode *) 0x8137304 (gdb) p *$ $2 = {forw = 0x8137304, back = 0x8137304} (gdb) p back $3 = (ListNode *) 0x8137304 (gdb) p *$ $4 = {forw = 0x8137304, back = 0x8137304} (gdb) Regards, - Havard From r.christian at gmx.de Mon Sep 6 20:15:22 2004 From: r.christian at gmx.de (Christian Reiser) Date: Mon, 06 Sep 2004 20:15:22 +0200 Subject: [irrtoolset]communty lists Message-ID: <413CA93A.2080707@gmx.de> Hi, my question is closely related to Mr. Prior's question from 19 Feb 2003: Is there a way to match/delete multiple communties (in rpsl)? I haven't found anything usefull in the rfc2622 (maybe by changing the dictionary class?) or somewhere else. Whould it make sense to define communtiy-sets (corresponding to as-set)? Unfortunately it seems they also dropped it out of rpslng :-((( Somehow clueless Christian From jason at lixfeld.ca Mon Sep 13 14:46:10 2004 From: jason at lixfeld.ca (Jason Lixfeld) Date: Mon, 13 Sep 2004 08:46:10 -0400 Subject: [irrtoolset]inet-rtr logic Message-ID: Greetings, I'm trying to understand how RtConfig uses the inet-rtr to search for data. I have an inet-rtr object with the following peer: peer: BGP4 198.32.245.8 asno(AS13657) The import/export info of the aut-num object for AS13657 looks like this: import: from AS701 accept ANY import: from AS10678 accept ANY import: from AS843 accept ANY import: from AS10568 accept AS10568 import: from AS5764 accept AS5764 export: to AS10568 announce ANY export: to AS10678 announce AS13657 AS13657:AS-CUSTOMERS export: to AS843 announce ANY export: to AS5674 announce ANY When I run RtConfig configureRouter I get a list of prefixes for AS10568 and AS5764, but not for AS13657 itself. I've read RFC2622 and the man page for IrrToolSet, but it doesn't give any indication as to how far it's search key extends into the aut-num object referenced in the peer: entry of the inet-rtr object. inet-rtr doesn't imply having a reciprocal entry in the inet-rtr objects peer's aut-num object, does it? From jason at lixfeld.ca Mon Sep 13 14:57:41 2004 From: jason at lixfeld.ca (Jason Lixfeld) Date: Mon, 13 Sep 2004 08:57:41 -0400 Subject: [irrtoolset]inet-rtr logic In-Reply-To: References: Message-ID: <7F19F8DF-0584-11D9-A112-000A95989E4A@lixfeld.ca> I think I've figured it out. It relies on the aut-num object of what's specified in the local-as attribute of the inet-rtr object, not the peer's. That being said, what is the function of the MANDATORY asno(as_number) dictionary value? Simply for remote-as if it's generating neighbor statements? On 13-Sep-04, at 8:46 AM, Jason Lixfeld wrote: > Greetings, > > I'm trying to understand how RtConfig uses the inet-rtr to search for > data. > > I have an inet-rtr object with the following peer: > > peer: BGP4 198.32.245.8 asno(AS13657) > > The import/export info of the aut-num object for AS13657 looks like > this: > > import: from AS701 accept ANY > import: from AS10678 accept ANY > import: from AS843 accept ANY > import: from AS10568 accept AS10568 > import: from AS5764 accept AS5764 > export: to AS10568 announce ANY > export: to AS10678 announce AS13657 AS13657:AS-CUSTOMERS > export: to AS843 announce ANY > export: to AS5674 announce ANY > > When I run RtConfig configureRouter > > I get a list of prefixes for AS10568 and AS5764, but not for AS13657 > itself. I've read RFC2622 and the man page for IrrToolSet, but it > doesn't give any indication as to how far it's search key extends into > the aut-num object referenced in the peer: entry of the inet-rtr > object. > > inet-rtr doesn't imply having a reciprocal entry in the inet-rtr > objects peer's aut-num object, does it? From cengiz at packetdesign.com Mon Sep 13 17:41:17 2004 From: cengiz at packetdesign.com (Cengiz Alaettinoglu) Date: Mon, 13 Sep 2004 08:41:17 -0700 Subject: [irrtoolset]inet-rtr logic In-Reply-To: <7F19F8DF-0584-11D9-A112-000A95989E4A@lixfeld.ca> References: <7F19F8DF-0584-11D9-A112-000A95989E4A@lixfeld.ca> Message-ID: <1095090077.22743.81.camel@zen> As far as I know, it is used to search the aut-num object for the appropriate policy for the peer. On Mon, 2004-09-13 at 05:57, Jason Lixfeld wrote: > I think I've figured it out. > > It relies on the aut-num object of what's specified in the local-as > attribute of the inet-rtr object, not the peer's. That being said, > what is the function of the MANDATORY asno(as_number) dictionary value? > Simply for remote-as if it's generating neighbor statements? > > On 13-Sep-04, at 8:46 AM, Jason Lixfeld wrote: > > > Greetings, > > > > I'm trying to understand how RtConfig uses the inet-rtr to search for > > data. > > > > I have an inet-rtr object with the following peer: > > > > peer: BGP4 198.32.245.8 asno(AS13657) > > > > The import/export info of the aut-num object for AS13657 looks like > > this: > > > > import: from AS701 accept ANY > > import: from AS10678 accept ANY > > import: from AS843 accept ANY > > import: from AS10568 accept AS10568 > > import: from AS5764 accept AS5764 > > export: to AS10568 announce ANY > > export: to AS10678 announce AS13657 AS13657:AS-CUSTOMERS > > export: to AS843 announce ANY > > export: to AS5674 announce ANY > > > > When I run RtConfig configureRouter > > > > I get a list of prefixes for AS10568 and AS5764, but not for AS13657 > > itself. I've read RFC2622 and the man page for IrrToolSet, but it > > doesn't give any indication as to how far it's search key extends into > > the aut-num object referenced in the peer: entry of the inet-rtr > > object. > > > > inet-rtr doesn't imply having a reciprocal entry in the inet-rtr > > objects peer's aut-num object, does it? Cengiz From jason at lixfeld.ca Mon Sep 13 18:10:24 2004 From: jason at lixfeld.ca (Jason Lixfeld) Date: Mon, 13 Sep 2004 12:10:24 -0400 Subject: [irrtoolset]More questions about configureRouter Message-ID: <6B5622F2-059F-11D9-A112-000A95989E4A@lixfeld.ca> I have some more questions about configureRouter My inet-rtr object: peer: BGP4 198.32.245.8 asno(AS13657) My aut-num object: import: from AS13657 198.32.245.8 at 198.32.245.49 accept <^AS13657 AS13657:AS-CUSTOMERS* $> AND AS13657 AND AS13657:AS-CUSTOMERS When I run the inet-rtr object through configureRouter, I get the correct as-path list as per the import attribute's accept policy filter, however it's not generating the proper prefix information. All it's generating is: no ip prefix-list pl100 ip prefix-list pl100 permit 199.246.110.0/23 ip prefix-list pl100 deny 0.0.0.0/0 le 32 That prefix has an origin of one of the AS' inside the as-set referenced above. The number of route objects with origins of AS13657 or origins of AS' inside AS13678:AS-CUSTOMERS is far more than the single prefix listed above. The idea of what I'm trying to do above should work, right? Generating as-path info from the as-path policy then generating the prefix info shouldn't be a problem, correct? Can anyone see anything wrong with what I'm trying to do? Anyone know of a better way to do it? From damir.pobric at canarie.ca Tue Sep 14 20:20:18 2004 From: damir.pobric at canarie.ca (Damir Pobric) Date: Tue, 14 Sep 2004 14:20:18 -0400 Subject: [irrtoolset]IRRToolsSet 4.8.2 - RtConfig missing junos support Message-ID: <41473662.1040507@canarie.ca> Hello All, this might have been already asked/answered but I can't manage to find it. I've successfully compiled (RPSLng) IRRToolSet 4.8.2 under RedHat ES3.0 but soon realized that junos config option is not supported. Original SRCS && OBJS lines in the Makefile have been changed and all vendor specific modules, except for cisco, were excluded, i.e.: # $Id: Makefile.in,v 4.8.6.2 2004/07/16 16:41:50 katie Exp $ GOAL = RtConfig #OBJS = RtConfig.o command.y.o command.l.o f_bcc.o f_cisco.o f_gated.o f_rsd.o f_junos.o #SRCS = RtConfig.cc command.y.cc command.l.cc f_bcc.cc f_cisco.cc f_gated.cc f_rsd.cc f_junos.cc #HFILES = RtConfig.hh command.y.hh command.l.hh f_bcc.hh f_cisco.hh f_gated.hh f_rsd.hh f_junos.hh OBJS = RtConfig.o command.y.o command.l.o f_cisco.o SRCS = RtConfig.cc command.y.cc command.l.cc f_cisco.cc HFILES = RtConfig.hh command.y.hh command.l.hh f_cisco.hh Attempts to compile the code with any other vendor module added fail. So, my guess is that they have been commented for a reason. The same applies to "regular" 4.8.2 toolset, not only to RPSLng. At RIPE ToolSet test site, RtConfig (with RPSLng) (http://www.ripe.net/cgi-bin/RtConfig-rpslng.cgi) behaves the same way. Regular RtConfig instead, does accept junos config option, which most probably means that binary was produced from different (release of) source code. I would like to deploy RPSLng but I need "junos" support? How I can do that?? Thanks. Regards, Damir -- Damir Pobric Sr. Network Engineer CANARIE Desk: +1 613 944 5608 CA*net 4 NOC: +1 613 944 5612 damir.pobric at canarie.ca www.canarie.ca Ten Years of Innovation CANARIE 1993 - 2003 From cengiz at packetdesign.com Wed Sep 15 08:06:30 2004 From: cengiz at packetdesign.com (Cengiz Alaettinoglu) Date: Tue, 14 Sep 2004 23:06:30 -0700 Subject: [irrtoolset]More questions about configureRouter In-Reply-To: <6B5622F2-059F-11D9-A112-000A95989E4A@lixfeld.ca> References: <6B5622F2-059F-11D9-A112-000A95989E4A@lixfeld.ca> Message-ID: <1095228390.3552.62.camel@elf> On Mon, 2004-09-13 at 09:10, Jason Lixfeld wrote: > I have some more questions about configureRouter > > My inet-rtr object: > > peer: BGP4 198.32.245.8 asno(AS13657) > > My aut-num object: > > import: from AS13657 198.32.245.8 at 198.32.245.49 > accept <^AS13657 AS13657:AS-CUSTOMERS* $> > AND AS13657 AND AS13657:AS-CUSTOMERS > You probably mean: ... AND (AS13657 OR AS13657:AS-CUSTOMERS) > When I run the inet-rtr object through configureRouter, I get the > correct as-path list as per the import attribute's accept policy > filter, however it's not generating the proper prefix information. All > it's generating is: > > no ip prefix-list pl100 > ip prefix-list pl100 permit 199.246.110.0/23 > ip prefix-list pl100 deny 0.0.0.0/0 le 32 > > That prefix has an origin of one of the AS' inside the as-set > referenced above. > > The number of route objects with origins of AS13657 or origins of AS' > inside AS13678:AS-CUSTOMERS is far more than the single prefix listed > above. > > The idea of what I'm trying to do above should work, right? Generating > as-path info from the as-path policy then generating the prefix info > shouldn't be a problem, correct? > > Can anyone see anything wrong with what I'm trying to do? Anyone know > of a better way to do it? -- Cengiz From jason at lixfeld.ca Wed Sep 15 14:35:02 2004 From: jason at lixfeld.ca (Jason Lixfeld) Date: Wed, 15 Sep 2004 08:35:02 -0400 Subject: [irrtoolset]More questions about configureRouter In-Reply-To: <1095228390.3552.62.camel@elf> References: <6B5622F2-059F-11D9-A112-000A95989E4A@lixfeld.ca> <1095228390.3552.62.camel@elf> Message-ID: On 15-Sep-04, at 2:06 AM, Cengiz Alaettinoglu wrote: > On Mon, 2004-09-13 at 09:10, Jason Lixfeld wrote: >> I have some more questions about configureRouter >> >> My inet-rtr object: >> >> peer: BGP4 198.32.245.8 asno(AS13657) >> >> My aut-num object: >> >> import: from AS13657 198.32.245.8 at 198.32.245.49 >> accept <^AS13657 AS13657:AS-CUSTOMERS* $> >> AND AS13657 AND AS13657:AS-CUSTOMERS >> > > You probably mean: ... AND (AS13657 OR AS13657:AS-CUSTOMERS) It was actually: ... AND (AS13657 AS13657:AS-CUSTOMERS) >> When I run the inet-rtr object through configureRouter, I get the >> correct as-path list as per the import attribute's accept policy >> filter, however it's not generating the proper prefix information. >> All >> it's generating is: >> >> no ip prefix-list pl100 >> ip prefix-list pl100 permit 199.246.110.0/23 >> ip prefix-list pl100 deny 0.0.0.0/0 le 32 >> >> That prefix has an origin of one of the AS' inside the as-set >> referenced above. >> >> The number of route objects with origins of AS13657 or origins of AS' >> inside AS13678:AS-CUSTOMERS is far more than the single prefix listed >> above. >> >> The idea of what I'm trying to do above should work, right? >> Generating >> as-path info from the as-path policy then generating the prefix info >> shouldn't be a problem, correct? >> >> Can anyone see anything wrong with what I'm trying to do? Anyone know >> of a better way to do it? > -- > Cengiz From bradv at speakeasy.net Tue Sep 28 02:26:55 2004 From: bradv at speakeasy.net (Brad Volz) Date: Mon, 27 Sep 2004 17:26:55 -0700 (PDT) Subject: [irrtoolset]4.8.2 -- AS-SET expansion via RtConfig Message-ID: Hello, Has anyone noticed a case where the 4.8.2 version of RtConfig will hang? If it is useful, the environment which I have compiled the source ( with the patch supplied to this list by Havard Eidnes ) is :- FreeBSD 5.2.1-RELEASE gcc version 3.3.3 [FreeBSD] 20031106 I should note that one common thread for when I observe RtConfig hanging is the case where a given AS within the AS-SET is not present, or rather that there are not any routes registered with that origin. 4.7.3 handles this by sending a message like the following -- Warning: key not found error for query !gAS4385. Is this the expected behavior in 4.8.2 as well, or should I expect the program to behave differently? cheers, -- Brad Volz Speakeasy, Inc.