[symmetrica] Add patches to fix sagemath build problems, forwarded by pcpa <paulo.cesar.pereira.de.andrade at gmail.

Jerry James jjames at fedoraproject.org
Tue May 8 20:46:03 UTC 2012


commit f313ab6a39614249a0e49d7a5c99dac0b8c535d2
Author: Jerry James <loganjerry at gmail.com>
Date:   Tue May 8 14:45:43 2012 -0600

    Add patches to fix sagemath build problems, forwarded by pcpa
    <paulo.cesar.pereira.de.andrade at gmail.com>.
    Drop unnecessary spec file elements (BuildRoot, clean script, etc.).

 symmetrica-attribute.patch       | 1051 ++++++++++++++++++++++++++++++
 symmetrica-int.patch             | 1330 ++++++++++++++++++++++++++++++++++++++
 symmetrica-sort_sum_rename.patch |  313 +++++++++
 symmetrica.spec                  |   33 +-
 4 files changed, 2716 insertions(+), 11 deletions(-)
---
diff --git a/symmetrica-attribute.patch b/symmetrica-attribute.patch
new file mode 100644
index 0000000..cd740e3
--- /dev/null
+++ b/symmetrica-attribute.patch
@@ -0,0 +1,1051 @@
+--- ./nb.c.orig	2012-05-08 13:45:58.267473287 -0600
++++ ./nb.c	2012-05-08 13:46:03.721466904 -0600
+@@ -9,18 +9,7 @@
+ 
+ #include "def.h"
+ #include "macro.h"
+-
+-int myisspace (int i) 
+-	{
+-        if (i=='\t') return 1;
+-        if (i=='\n') return 1;
+-        if (i=='\r') return 1;
+-        if (i=='\v') return 1;
+-        if (i=='\f') return 1;
+-        if (i==' ') return 1;
+-	return 0;
+-	}
+-
++#include <ctype.h>
+ 
+ #define INIT_CYCLO(a) \
+ do {\
+@@ -4892,7 +4881,7 @@ static INT setup_cyclotomic_table(filena
+         char_ptr    = name;
+         while( (*char_ptr = fgetc(stdin)) != '\n')
+         {    
+-            if (myisspace(*char_ptr)) continue;
++            if (isspace(*char_ptr)) continue;
+             char_ptr++; 
+             i++;
+             if (i > (INT)48) break;
+@@ -5123,7 +5112,7 @@ INT save_cyclo_list(filename) char *file
+         char_ptr    = name;
+         while( (*char_ptr = fgetc(stdin)) != '\n')
+         {    
+-            if (myisspace(*char_ptr)) continue;
++            if (isspace(*char_ptr)) continue;
+             char_ptr++; 
+             i++;
+             if (i > (INT)48) break;
+--- ./lo.c.orig	2012-05-08 13:45:58.270473284 -0600
++++ ./lo.c	2012-05-08 13:46:03.722466903 -0600
+@@ -54,7 +54,7 @@ static INT ganzquores();
+ static INT ganzsadd();
+ static INT ganzsmul();
+ static INT ganzsquores();
+-static INT ganzvergleich();
++static INT ganzvergleich() __attribute__((pure));
+ static INT ganz1ziffer();
+ static INT intganz();
+ static INT locadd();
+@@ -4361,7 +4361,6 @@ INT sscan_longint(t,a) char *t; OP a;
+     INT vz=(INT)1;
+     char c;
+     OP zehn, faktor;
+-    int SYM_isdigit();
+ 
+     COP("sscan_longint(1)",t);
+     CTO(EMPTY,"sscan_longint(2)",a);
+--- ./ma.c.orig	2012-05-08 13:45:58.271473283 -0600
++++ ./ma.c	2012-05-08 13:46:03.724466901 -0600
+@@ -5,6 +5,7 @@
+ #ifdef MATRIXTRUE
+ static struct matrix * callocmatrix();
+ static INT scan_matrix_co();
++static INT co_050995(a) __attribute__((pure));
+ 
+ static INT transform_matrix(a,f,b) OP a,b; INT (*f)();
+ {
+--- ./zyk.c.orig	2012-05-08 13:45:54.469477733 -0600
++++ ./zyk.c	2012-05-08 13:46:03.725466900 -0600
+@@ -34,6 +34,8 @@
+ static INT colltypes();
+ static INT strongen();
+ static INT polyasub();
++static INT gcd() __attribute__((const));
++static INT eulerfunc() __attribute__((const));
+ 
+ /* Die beiden naechsten Routinen werden zur Berechnung des 
+  * Zykelindikators der zyklischen Gruppe benoetigt
+--- ./mo.c.orig	2012-05-08 13:45:58.277473275 -0600
++++ ./mo.c	2012-05-08 13:46:03.727466897 -0600
+@@ -43,14 +43,14 @@ static INT k_alzyk();
+ static INT j_zyk();
+ static INT inzeil();
+ static INT zykschnitt ();
+-static INT leer();
+-static INT a_teilmenge_b();
+-static INT setmin();
++static INT leer() __attribute__((pure));
++static INT a_teilmenge_b() __attribute__((pure));
++static INT setmin() __attribute__((pure));
+ static INT _teste_r_mat_dim();
+ static INT _red_r_mat();
+ static INT _diff();
+ static INT _kleiner();
+-static INT _ggT();
++static INT _ggT() __attribute__((const));
+ static INT _v_eintrag();
+ static INT _ber_dim();
+ static INT _dimension();
+@@ -58,14 +58,14 @@ static INT _fakul();
+ static INT _ber_lambdas();
+ static INT _r_induk();
+ static INT _num_part();
+-static INT _part_reg();
++static INT _part_reg() __attribute__((pure));
+ static INT _nexpart();
+ static INT _k_modgauss();
+-static INT COEFF();
++static INT COEFF() __attribute__((const));
+ static INT _search_dec();
+ static INT _k_zweikonmat();
+-static INT invp();
+-static INT fak();
++static INT invp() __attribute__((const));
++static INT fak() __attribute__((const));
+ static INT nexgitt();
+ static INT _ber_idx_pelem();
+ static INT darmod();
+--- ./plet.c.orig	2007-12-06 09:30:22.000000000 -0700
++++ ./plet.c	2012-05-08 13:46:03.728466896 -0600
+@@ -19,7 +19,7 @@
+ #define signed
+ #endif 
+ 
+-static INT cmp();
++static INT cmp() __attribute__((pure));
+ static INT ins_sch_lst();
+ static INT ins_sc_lst();
+ /* static INT ins_s_lst(); */
+@@ -30,7 +30,7 @@ static struct liste * proprt();
+ static INT fct_sch_prt_srt();
+ static struct liste * pro_lg();
+ static INT fct_sch_lg_srt();
+-static INT poids();
++static INT poids() __attribute__((pure));
+ static INT free_lst();
+ static INT free_newton();
+ static INT shuffle_sig();
+@@ -260,8 +260,6 @@ static INT conjug(tab,j,ve)
+     return OK;
+ }
+ 
+-int SYM_strlen();
+-
+ 
+ static INT operer(n,ttp,deg,baf,cof,liste,parite)
+     signed char n,ttp,deg,*baf,parite;
+--- ./na.c.orig	2007-12-06 09:30:14.000000000 -0700
++++ ./na.c	2012-05-08 13:46:03.729466895 -0600
+@@ -590,6 +590,7 @@ static void ltmult( pi , t1 , t2 ) int *
+ *    Vorzeichen
+ *
+ ********************************************************************/
++static int sign() __attribute__((pure));
+ static int sign(pi ) int *pi;
+ /* AK 191289 V1.1 */
+ /* TF 011289 */ /* AK 210891 V1.3 */
+--- ./vc.c.orig	2012-05-08 13:45:58.283473269 -0600
++++ ./vc.c	2012-05-08 13:46:03.731466893 -0600
+@@ -4,6 +4,7 @@
+ /* SYMMETRICA vector.c */
+ /* AK 160986 */
+ 
++static INT maxpart_bitvector_part_i() __attribute__((pure));
+ struct vector * callocvectorstruct();
+ static INT charvalue_bit_co();
+ static INT mem_counter_vec=0;
+@@ -601,7 +602,6 @@ INT sscan_integervector(t,a) OP a; char
+ {
+     INT i,n,erg = OK;
+     char *v,*w;
+-    int SYM_isdigit();
+ 
+     COP("sscan_integervector(1)",t);
+     COP("sscan_integervector(2)",a);
+--- ./bar.c.orig	2012-05-08 13:45:58.289473261 -0600
++++ ./bar.c	2012-05-08 13:46:03.731466893 -0600
+@@ -299,7 +299,7 @@ INT strong_check_barp(a) OP a;
+ /* AK 230695 */
+ {
+     OP h;
+-    INT i,SYM_abs();
++    INT i;
+ 
+     if (a == NULL)
+         return FALSE;
+--- ./ff.c.orig	2012-05-08 13:45:58.290473260 -0600
++++ ./ff.c	2012-05-08 13:46:03.732466892 -0600
+@@ -45,9 +45,9 @@ static INT UE_add();
+ static INT UE_fZeige();
+ static INT UE_invers();
+ static INT UE_ist_gleich();
+-static INT UE_ist_eins();
++static INT UE_ist_eins() __attribute__((pure));
+ static INT UE_ist_null();
+-static INT UE_kgv();
++static INT UE_kgv() __attribute__((const));
+ static INT UE_mult();
+ static INT UE_negativ();
+ /* static INT UE_sqrt(); */
+--- ./sab.c.orig	2007-12-06 09:30:33.000000000 -0700
++++ ./sab.c	2012-05-08 13:46:03.734466888 -0600
+@@ -43,12 +43,12 @@ static INT get_BV();
+ static INT add_to_PROJ();
+ static INT    mhochexpo();
+ static INT TP();
+-static INT    get_nr_of_tupel();
+-static INT     lls_vgl();
+-static INT     ti_eq_tk();
++static INT    get_nr_of_tupel() __attribute__((pure));
++static INT     lls_vgl() __attribute__((pure));
++static INT     ti_eq_tk() __attribute__((pure));
+ static INT     get_axial_distance();
+ static INT     ti_eq_transpo_tk();
+-static INT     get_main_diag();
++static INT     get_main_diag() __attribute__((pure));
+ static INT D_calc();
+ static INT D_row_calc();
+ static INT transponiere();
+@@ -59,14 +59,14 @@ static INT cut_col_row();
+ static INT     ziffern_existieren();
+ static INT Pcut_col_row();
+ static INT createP();
+-static INT     lex_vgl();
++static INT     lex_vgl() __attribute__((pure));
+ static INT sortieren();
+ static INT zuweisen();
+ static INT _del();
+ static INT _ins();
+ static INT _kt();
+-static INT get_col();
+-static INT get_row();
++static INT get_col() __attribute__((pure));
++static INT get_row() __attribute__((pure));
+ static INT Pziffern_existieren();
+ static INT alpha_beta_tabs();
+ static INT get_submatrix();
+@@ -1551,7 +1551,6 @@ INT sdg(part,perm,D) OP      part,perm,D
+     INT     i;
+     INT     j;
+     INT erg = OK;
+-    INT    lls_vgl();
+     OP n,lehmer,HD,dim,t,inh;
+ 
+     CTO(PARTITION,"sdg(1)",part);
+@@ -1625,7 +1624,6 @@ static INT _xdg(nr,t,P,var)
+ {
+     INT     i,j,k;
+     INT     main_diag = 0L;
+-    INT     get_main_diag();
+     INT erg = OK;
+ 
+     for(i=0L;i<S_V_LI(t);++i)
+@@ -1810,9 +1808,6 @@ static INT     ti_eq_transpo_tk(nr,t_i,t
+ static INT     get_axial_distance(t_i,nr,dist)
+     OP      t_i; INT     nr; OP      dist;
+ {
+-    INT     get_row();
+-    INT     get_col();
+-
+     INT     i_r;
+     INT     j_r;
+     INT     i_s;
+@@ -1962,7 +1957,6 @@ INT odg(part,perm,D) OP  part,perm,D;
+ #ifdef DGTRUE
+     INT     i;
+     INT     j;
+-    INT    lls_vgl();
+     OP rz,HD,dim,t,inh;
+ 
+ 
+@@ -2351,7 +2345,6 @@ static INT TP(tupel,st,n,m,sperm,bperm)
+     INT    zeile        =    0L;
+     INT    spalte        =    0L;
+     INT    TP();
+-    INT    get_nr_of_tupel();
+     static    INT count     =     0L;
+     OP    htupel;
+ 
+--- ./rh.c.orig	2012-05-08 13:45:58.294473256 -0600
++++ ./rh.c	2012-05-08 13:46:03.735466886 -0600
+@@ -12,7 +12,7 @@ static INT zuwachs=(INT)5;
+ #define new_var new_drei
+ #define new_mon new_zwei
+ static INT co_261093();
+-static INT reihevergleich ();
++static INT reihevergleich () __attribute__((pure));
+ static INT Eins_eingabe();
+ static INT co_eingabe();
+ static INT Random_eingabe();
+@@ -43,8 +43,8 @@ static INT ergaenze_reihe();
+ static int card_typ_reihe();
+ static  int card_reihe();
+ static int variablenvergleich();
+-static int monomvergleich ();
+-static int monomgrad();
++static int monomvergleich () __attribute__((pure));
++static int monomgrad() __attribute__((pure));
+ static INT monommult();
+ static INT monomausgabe();
+ static  int trans_reihe_in_monom();
+--- ./part.c.orig	2012-05-08 13:45:58.295473255 -0600
++++ ./part.c	2012-05-08 13:46:03.736466885 -0600
+@@ -3985,7 +3985,6 @@ static INT sscan_partition_co(t,a) OP a;
+ /* AK 230298 V2.0 */
+ {
+     INT i,n,erg = OK;
+-    int SYM_isdigit();
+     char *v,*w;
+ 
+     COP("sscan_partition(1)",t);
+--- ./def.h.orig	2012-05-08 13:45:58.297473252 -0600
++++ ./def.h	2012-05-08 13:47:48.238344563 -0600
+@@ -716,8 +716,8 @@ extern INT binom_small();
+ extern INT binom_small();
+ extern INT binom_small();
+ extern INT b_i_pa();
+-extern INT bit();
+-extern INT bit_longint();
++extern INT bit() __attribute__((pure));
++extern INT bit_longint() __attribute__((pure));
+ extern INT b_kl_pa();
+ extern INT b_ksd_n();
+ extern INT b_ks_o();
+@@ -740,9 +740,9 @@ extern INT brouwerlowerbound();
+ extern INT brouwerupperbound();
+ extern INT bruch_anfang();
+ extern INT bruch_ende();
+-extern INT bruch_not_scalar();
+-extern INT bru_comp();
+-extern INT bruhat_comp_perm();
++extern INT bruch_not_scalar() __attribute__((pure));
++extern INT bru_comp() __attribute__((pure));
++extern INT bruhat_comp_perm() __attribute__((pure));
+ extern INT bruhat_ideal();
+ extern INT bruhat_ideal_strong();
+ extern INT bruhat_ideal_weak();
+@@ -778,8 +778,8 @@ extern INT B_W();
+ extern INT b_wpd_sc();
+ extern INT calculate_fixed_point_number();
+ extern OP callocobject();
+-extern INT callocobject_anfang();
+-extern INT callocobject_ende();
++extern INT callocobject_anfang() __attribute__((const));
++extern INT callocobject_ende() __attribute__((const));
+ extern OP callocobject_fast();
+ extern OP callocobject_magma();
+ extern INT cardinality_pgkq();
+@@ -791,7 +791,7 @@ extern INT cast_apply_homsym();
+ extern INT cast_apply_integer();
+ extern INT cast_apply();
+ extern INT cast_apply_matrix();
+-extern INT cast_apply_monom();
++extern INT cast_apply_monom() __attribute__((const));
+ extern INT cast_apply_monomial();
+ extern INT cast_apply_monopoly();
+ extern INT cast_apply_part();
+@@ -902,8 +902,8 @@ extern INT columns_standardise_tableau (
+ extern INT column_standardise_tableau ();
+ extern INT columnwordoftableaux();
+ extern INT comp();
+-extern INT comp_bigr_bigr();
+-extern INT comp_bigr_perm();
++extern INT comp_bigr_bigr() __attribute__((pure));
++extern INT comp_bigr_perm() __attribute__((pure));
+ extern INT comp_bruch();
+ extern INT comp_bruch_scalar();
+ extern INT comp_bv();
+@@ -912,12 +912,12 @@ extern INT comp_colex_schurmonom();
+ extern INT comp_colex_vector();
+ extern INT comp_cyclo();
+ extern INT comp_ff();
+-extern INT comp_galois();
++extern INT comp_galois() __attribute__((pure));
+ extern INT comp_integer();
+-extern INT comp_integer_integer();
+-extern INT comp_integermatrix();
++extern INT comp_integer_integer() __attribute__((pure));
++extern INT comp_integermatrix() __attribute__((pure));
+ extern INT comp_integervector();
+-extern INT comp_kranztafel();
++extern INT comp_kranztafel() __attribute__((pure));
+ extern INT complete_complete_plet();
+ extern INT complete_schur_plet();
+ extern INT complex_conjugate();
+@@ -928,22 +928,22 @@ extern INT comp_longint();
+ extern INT comp_longint_integer();
+ extern INT comp_matrix();
+ extern INT comp_monom();
+-extern INT comp_monomelmsym();
+-extern INT comp_monomhomsym();
+-extern INT comp_monommonomial();
+-extern INT comp_monompowsym();
+-extern INT comp_monomschur();
++extern INT comp_monomelmsym() __attribute__((pure));
++extern INT comp_monomhomsym() __attribute__((pure));
++extern INT comp_monommonomial() __attribute__((pure));
++extern INT comp_monompowsym() __attribute__((pure));
++extern INT comp_monomschur() __attribute__((pure));
+ extern INT comp_monomvector_monomvector();
+ extern INT comp_monopoly();
+ extern INT comp_number();
+ extern INT comp_numeric_vector();
+ extern INT comp_partition();
+-extern INT comp_partition_partition();
++extern INT comp_partition_partition() __attribute__((pure));
+ extern INT comp_permutation();
+-extern INT comp_permutation_pol();
++extern INT comp_permutation_pol() __attribute__((pure));
+ extern INT comp_polynom();
+ extern INT comp_polynom_scalar();
+-extern INT comp_reihe();
++extern INT comp_reihe() __attribute__((pure));
+ extern INT comp_skewpartition();
+ extern INT comp_skewpartition_skewpartition();
+ extern INT comp_sqrad();
+@@ -975,8 +975,8 @@ extern INT conjugate_powsym();
+ extern INT conjugate_schur();
+ extern INT conjugate_tableaux();
+ extern INT conjugation();
+-extern INT consp_polynom();
+-extern INT contain_comp_part();
++extern INT consp_polynom() __attribute__((pure));
++extern INT contain_comp_part() __attribute__((pure));
+ extern INT content();
+ extern INT content_polynom();
+ extern INT content_tableaux();
+@@ -1118,7 +1118,7 @@ extern INT double_apply_longint();
+ extern INT double_hashtable();
+ extern INT ds_j_wt();
+ extern INT durfee_size_part();
+-extern INT dynamicp();
++extern INT dynamicp() __attribute__((pure));
+ extern INT dz_i_wt();
+ extern INT E_eingabe();
+ extern INT eins();
+@@ -1128,15 +1128,15 @@ extern INT eins_ff_given_q();
+ extern INT eins_galois();
+ extern INT eins_gr_given_c_d();
+ extern INT einsp();
+-extern INT einsp_bitvector();
++extern INT einsp_bitvector() __attribute__((pure));
+ extern INT einsp_bruch();
+ extern INT einsp_cyclotomic();
+-extern INT einsp_ff();
+-extern INT einsp_galois();
+-extern INT einsp_integer();
+-extern INT einsp_integervector();
++extern INT einsp_ff() __attribute__((pure));
++extern INT einsp_galois() __attribute__((pure));
++extern INT einsp_integer() __attribute__((pure));
++extern INT einsp_integervector() __attribute__((pure));
+ extern INT einsp_kranz();
+-extern INT einsp_longint();
++extern INT einsp_longint() __attribute__((pure));
+ extern INT einsp_matrix();
+ extern INT einsp_monopoly();
+ extern INT einsp_permutation();
+@@ -1150,7 +1150,7 @@ extern INT einsp_vector();
+ extern INT elementarp_permutation();
+ extern INT elementary_schur_plet();
+ extern INT embedding_mod_into_ord();
+-extern INT empty_listp();
++extern INT empty_listp() __attribute__((pure));
+ extern INT empty_object();
+ extern INT emptyp();
+ extern INT ende();
+@@ -1160,13 +1160,13 @@ extern INT eq();
+ extern INT eq_cyclotomic();
+ extern INT eq_fieldobject_int();
+ extern INT eq_integer();
+-extern INT eq_integervector_integervector();
+-extern INT eq_longint_longint();
++extern INT eq_integervector_integervector() __attribute__((pure));
++extern INT eq_longint_longint() __attribute__((pure));
+ extern INT eq_matrix();
+-extern INT eq_monomsymfunc();
+-extern INT eq_monomsymfunchash();
+-extern INT eq_partition();
+-extern INT eq_partition_partition();
++extern INT eq_monomsymfunc() __attribute__((pure));
++extern INT eq_monomsymfunchash() __attribute__((pure));
++extern INT eq_partition() __attribute__((pure));
++extern INT eq_partition_partition() __attribute__((pure));
+ extern INT eq_permutation();
+ extern INT eq_sqrad();
+ extern INT equal_2_error();
+@@ -1184,8 +1184,8 @@ extern INT eval_monopoly();
+ extern INT eval_polynom_dir_prod();
+ extern INT eval_polynom();
+ extern INT even();
+-extern INT even_integer();
+-extern INT even_longint();
++extern INT even_integer() __attribute__((pure));
++extern INT even_longint() __attribute__((pure));
+ extern INT even_partition();
+ extern INT even_permutation();
+ extern INT exchange_alphabets();
+@@ -1197,7 +1197,7 @@ extern INT factorize_integer();
+ extern INT fakul_longintresult();
+ extern INT fakul();
+ extern INT fastrectr();
+-extern INT fatal_error();
++extern void fatal_error() __attribute__((noreturn));
+ extern INT ferrers();
+ extern INT ferrers_partition();
+ extern INT ferrers_skewpartition();
+@@ -1227,7 +1227,7 @@ extern OP findmin_monomial();
+ extern OP findmin_powsym();
+ extern OP findmin_schur();
+ extern OP find_monomial();
+-extern INT find_non_root_standard_pos ();
++extern INT find_non_root_standard_pos () __attribute__((pure));
+ extern INT find_non_rowstandard_pos ();
+ extern OP find_schur();
+ extern INT find_tab_entry();
+@@ -1344,7 +1344,7 @@ extern INT from_loesung_to_minimaldistan
+ extern INT from_loesung_to_minimaldistanz();
+ extern INT from_loesung_to_weightenumerator();
+ extern INT from_loesung_to_weightenumerator();
+-extern INT fusedmemory();
++extern INT fusedmemory() __attribute__((const));
+ extern INT galois_anfang();
+ extern INT galois_ende();
+ extern INT ganzdiv();
+@@ -1409,7 +1409,7 @@ extern INT gewicht_wt();
+ extern INT Ggen();
+ extern INT ggt();
+ extern INT ggt_field_polynom();
+-extern INT ggt_i();
++extern INT ggt_i() __attribute__((const));
+ extern INT ggt_integer();
+ extern INT ggt_integer_integer();
+ extern INT ggt_integer_integer_slow();
+@@ -1457,8 +1457,8 @@ extern INT hall_littlewood_tafel();
+ extern INT hamming_distance_vector();
+ extern INT hash();
+ extern INT hash_ende();
+-extern INT hash_ff();
+-extern INT hash_integervector();
++extern INT hash_ff() __attribute__((pure));
++extern INT hash_integervector() __attribute__((pure));
+ extern INT hash_list();
+ extern INT hash_matrix();
+ extern INT hash_monompartition();
+@@ -1494,7 +1494,7 @@ extern INT _homtest();
+ extern INT hook_diagramm();
+ extern INT hook_length_augpart();
+ extern INT hook_length();
+-extern INT hookp();
++extern INT hookp() __attribute__((pure));
+ extern INT hook_partition();
+ extern INT hook_part();
+ extern INT horizontal_sum();
+@@ -1514,7 +1514,7 @@ extern INT inc_reihe();
+ extern INT inc_tableaux();
+ extern INT inc_vector();
+ extern INT inc_vector_co();
+-extern INT index_galois();
++extern INT index_galois() __attribute__((pure));
+ extern INT indexofpart();
+ extern INT index_vector();
+ extern INT index_vector_binary();
+@@ -1563,9 +1563,9 @@ extern INT integer_factor();
+ extern INT integer_factors_to_integer();
+ extern INT integer_primep();
+ extern INT integer_primep();
+-extern INT intlog();
+-extern INT intlog_int();
+-extern INT intlog_longint();
++extern INT intlog() __attribute__((pure));
++extern INT intlog_int() __attribute__((const));
++extern INT intlog_longint() __attribute__((pure));
+ extern INT invers();
+ extern INT invers_apply();
+ extern INT invers_apply_bruch();
+@@ -1649,7 +1649,7 @@ extern INT last_part_EXPONENT();
+ extern INT last_partition();
+ extern INT last_part_VECTOR();
+ extern INT last_permutation();
+-extern INT lastp_list();
++extern INT lastp_list() __attribute__((pure));
+ extern INT latex_glm_dar();
+ extern INT latex_kranztafel();
+ extern INT latex_line();
+@@ -1678,7 +1678,7 @@ extern INT l_elementary_schur_plet();
+ extern INT length();
+ extern INT length_bar();
+ extern INT length_bintree();
+-extern INT length_comp_part();
++extern INT length_comp_part() __attribute__((pure));
+ extern INT length_list();
+ extern INT length_partition();
+ extern INT length_permutation();
+@@ -1688,7 +1688,7 @@ extern INT length_vector();
+ extern INT line_of_two_points();
+ extern INT list_anfang();
+ extern INT list_ende();
+-extern INT listp();
++extern INT listp() __attribute__((pure));
+ extern INT local_anfang();
+ extern INT local_ende();
+ extern INT longint_ende();
+@@ -1750,7 +1750,7 @@ extern INT mapp_hashtable_hashtable_();
+ extern INT mapp_hashtable_hashtable_();
+ extern INT matrix_knuth();
+ extern INT matrix_monom_ypolynom();
+-extern INT matrixp();
++extern INT matrixp() __attribute__((pure));
+ extern INT matrix_to_kranztypus();
+ extern INT matrix_twoword();
+ extern INT max();
+@@ -1761,7 +1761,7 @@ extern INT max_divideddiff();
+ extern INT max_integervector();
+ extern INT max_matrix();
+ extern INT maxorder_young();
+-extern INT maxpart_comp_part();
++extern INT maxpart_comp_part() __attribute__((pure));
+ extern INT maxrindexword();
+ extern INT max_tableaux();
+ extern INT max_vector();
+@@ -1783,7 +1783,7 @@ extern INT mee_partition__();
+ extern INT mee_partition__();
+ extern INT mee_partition_partition_();
+ extern INT m_eins_reihe();
+-extern INT memcheck();
++extern INT memcheck() __attribute__((const));
+ extern INT mem_elmsym__();
+ extern INT mem_ende();
+ extern INT mem_integer__();
+@@ -1794,10 +1794,10 @@ extern INT mem_integer_partition_();
+ extern INT mem_partition__();
+ extern INT mem_size();
+ extern INT mem_size_hashtable();
+-extern INT mem_size_longint();
++extern INT mem_size_longint() __attribute__((pure));
+ extern INT mem_size_matrix();
+ extern INT mem_size_vector();
+-extern INT mem_small();
++extern INT mem_small() __attribute__((const));
+ extern INT mes_elmsym__();
+ extern INT mes_ende();
+ extern INT mes_hashtable__();
+@@ -1978,7 +1978,7 @@ extern INT monomial_recursion();
+ extern INT monomial_recursion2();
+ extern INT monomial_recursion2();
+ extern INT monomial_recursion();
+-extern INT monom_release();
++extern INT monom_release() __attribute__((const));
+ extern INT m_ou_b();
+ extern INT move_1result_hashtable();
+ extern INT move_2result_hashtable();
+@@ -2015,7 +2015,7 @@ extern INT m_perm_skwt_summe();
+ extern INT m_perm_snwt_summe();
+ extern INT m_perm_tableaux_summe();
+ extern INT m_perm_wt_summe();
+-extern INT mp_is_cst();
++extern INT mp_is_cst() __attribute__((pure));
+ extern INT mpp___();
+ extern INT mpp___();
+ extern INT mpp_ende();
+@@ -2300,13 +2300,13 @@ extern INT nb_ende();
+ extern INT ndg();
+ extern INT negeinsp();
+ extern INT negeinsp_bruch();
+-extern INT negeinsp_integer();
+-extern INT negeinsp_longint();
++extern INT negeinsp_integer() __attribute__((pure));
++extern INT negeinsp_longint() __attribute__((pure));
+ extern INT negeinsp_polynom();
+ extern INT negp();
+ extern INT negp_bruch();
+-extern INT negp_integer();
+-extern INT negp_longint();
++extern INT negp_integer() __attribute__((pure));
++extern INT negp_longint() __attribute__((pure));
+ extern INT negp_polynom();
+ extern INT neg_sum();
+ extern INT neq();
+@@ -2372,17 +2372,17 @@ extern INT null_galois();
+ extern INT null_gr_given_c_d();
+ extern INT null_object();
+ extern INT nullp();
+-extern INT nullp_bitvector();
++extern INT nullp_bitvector() __attribute__((pure));
+ extern INT nullp_bruch();
+ extern INT nullp_cyclo();
+ extern INT nullp_elmsym();
+-extern INT nullp_ff();
+-extern INT nullp_galois();
++extern INT nullp_ff() __attribute__((pure));
++extern INT nullp_galois() __attribute__((pure));
+ extern INT nullp_homsym();
+-extern INT nullp_integer();
+-extern INT nullp_integermatrix();
++extern INT nullp_integer() __attribute__((pure));
++extern INT nullp_integermatrix() __attribute__((pure));
+ extern INT nullp_integervector();
+-extern INT nullp_longint();
++extern INT nullp_longint() __attribute__((pure));
+ extern INT nullp_matrix();
+ extern INT nullp_monomial();
+ extern INT nullp_monopoly();
+@@ -2457,7 +2457,7 @@ extern INT objectwrite_vector();
+ extern INT odd();
+ extern INT oddify_longint();
+ extern INT oddify_longint();
+-extern INT odd_longint();
++extern INT odd_longint() __attribute__((pure));
+ extern INT oddpartsp();
+ extern INT odd_to_strict_part();
+ extern INT odg();
+@@ -2496,7 +2496,7 @@ extern INT p2_schursum();
+ extern INT part_anfang();
+ extern INT part_comp();
+ extern INT part_ende();
+-extern INT partitionp();
++extern INT partitionp() __attribute__((pure));
+ extern INT part_part_skewschur();
+ extern INT perm_anfang();
+ extern INT Perm_eingabe();
+@@ -2505,14 +2505,14 @@ extern INT perm_matrix();
+ extern INT perm_matrix_p();
+ extern INT perm_tableaux();
+ extern INT permutation_matrix();
+-extern INT permutationp();
++extern INT permutationp() __attribute__((pure));
+ extern INT permutationsdarstellung_matrix_pgl();
+ extern INT permutationsdarstellung_matrix_pgl();
+ extern INT perm_weintraube();
+ extern INT pes___();
+ extern INT pes___();
+ extern INT pes_elmsym__();
+-extern INT pes_ende();
++extern INT pes_ende() __attribute__((const));
+ extern INT pes_hashtable__();
+ extern INT pes_integer__();
+ extern INT pes_integer_hashtable_();
+@@ -2523,12 +2523,12 @@ extern INT pes_null__();
+ extern INT pes_null_partition_();
+ extern INT pes_null_partition_();
+ extern INT pes_partition__();
+-extern INT pfact();
++extern INT pfact() __attribute__((pure));
+ extern INT pfaffian_matrix();
+ extern INT pgcd();
+ extern INT phm___();
+ extern INT phm___();
+-extern INT phm_ende();
++extern INT phm_ende() __attribute__((const));
+ extern INT phm_hashtable__();
+ extern INT phm_hashtable_hashtable_();
+ extern INT phm_homsym__();
+@@ -2548,7 +2548,7 @@ extern INT p_hook_weight();
+ extern INT phs___();
+ extern INT phs___();
+ extern INT phs___();
+-extern INT phs_ende();
++extern INT phs_ende() __attribute__((const));
+ extern INT phs_hashtable__();
+ extern INT phs_homsym__();
+ extern INT phs_integer__();
+@@ -2564,7 +2564,7 @@ extern INT pictex_snwt_liste();
+ extern INT pictex_wt();
+ extern INT pictex_wt_liste();
+ extern INT pictex_wt_liste_co();
+-extern INT planep();
++extern INT planep() __attribute__((pure));
+ extern INT plane_tableau();
+ extern INT plaziere_verband();
+ extern INT plet_elmsym_elmsym();
+@@ -2620,8 +2620,8 @@ extern INT polya_sub();
+ extern OP pop();
+ extern INT posp();
+ extern INT posp_bruch();
+-extern INT posp_integer();
+-extern INT posp_longint();
++extern INT posp_integer() __attribute__((pure));
++extern INT posp_longint() __attribute__((pure));
+ extern INT posp_polynom();
+ extern INT posp_vector();
+ extern INT pos_sum();
+@@ -2634,7 +2634,7 @@ extern INT ppe___();
+ extern INT ppe___();
+ extern INT ppe___();
+ extern INT ppe___();
+-extern INT ppe_ende();
++extern INT ppe_ende() __attribute__((const));
+ extern INT ppe_hashtable__();
+ extern INT ppe_hashtable_hashtable_();
+ extern INT ppe_integer__();
+@@ -2654,7 +2654,7 @@ extern INT pph___();
+ extern INT pph___();
+ extern INT pph___();
+ extern INT pph___();
+-extern INT pph_ende();
++extern INT pph_ende() __attribute__((const));
+ extern INT pph_hashtable__();
+ extern INT pph_hashtable_hashtable_();
+ extern INT pph_integer__();
+@@ -2674,7 +2674,7 @@ extern INT ppm___();
+ extern INT ppm___();
+ extern INT ppm___();
+ extern INT ppm___();
+-extern INT ppm_ende();
++extern INT ppm_ende() __attribute__((const));
+ extern INT ppm_hashtable__();
+ extern INT ppm_hashtable_hashtable_();
+ extern INT ppm_integer__();
+@@ -2693,7 +2693,7 @@ extern INT ppp___();
+ extern INT ppp___();
+ extern INT ppp___();
+ extern INT ppp___();
+-extern INT ppp_ende();
++extern INT ppp_ende() __attribute__((const));
+ extern INT ppp_hashtable__();
+ extern INT ppp_hashtable_hashtable_();
+ extern INT ppp_integer__();
+@@ -2707,7 +2707,7 @@ extern INT ppp_null_partition_();
+ extern INT ppp_partition__();
+ extern INT ppp_powsym__();
+ extern INT pps___();
+-extern INT pps_ende();
++extern INT pps_ende() __attribute__((const));
+ extern INT pps_hashtable__();
+ extern INT pps_hashtable_hashtable_();
+ extern INT pps_integer__();
+@@ -2718,7 +2718,7 @@ extern INT pps_partition__();
+ extern INT pps_powsym__();
+ extern INT prepartdom();
+ extern INT primep();
+-extern INT primep_ff();
++extern INT primep_ff() __attribute__((pure));
+ extern INT prime_power_p();
+ extern INT primitive_element_ff_given_q();
+ extern INT primitive_element_ff();
+@@ -2756,7 +2756,7 @@ extern INT psl_apply_i_integer();
+ extern INT psl_apply_i_longint();
+ extern INT psl_apply_longint();
+ extern INT psm___();
+-extern INT psm_ende();
++extern INT psm_ende() __attribute__((const));
+ extern INT p_splitpart();
+ extern INT p_splitpart2();
+ extern INT p_splitpart();
+@@ -2764,7 +2764,7 @@ extern INT psr_apply_i_integer();
+ extern INT psr_apply_i_longint();
+ extern INT pss___();
+ extern INT pss___();
+-extern INT pss_ende();
++extern INT pss_ende() __attribute__((const));
+ extern INT pss_hashtable__();
+ extern INT pss_hashtable_hashtable_();
+ extern INT pss_integer__();
+@@ -2795,7 +2795,7 @@ extern INT q_core_sign();
+ extern INT qdimension();
+ extern INT qdimension_schubert();
+ extern INT qsort_vector();
+-extern INT quadraticp();
++extern INT quadraticp() __attribute__((pure));
+ extern INT quadratic_remainders();
+ extern INT quasi_normal_form();
+ extern INT quasinormalform();
+@@ -2933,7 +2933,7 @@ extern INT s_b_oi();
+ extern OP s_b_u();
+ extern INT s_b_ui();
+ extern INT s_bv_li();
+-extern INT scalarp();
++extern INT scalarp() __attribute__((pure));
+ extern INT scalarproduct();
+ extern INT scalarproduct_bar_schubert();
+ extern INT scalarproduct_elmsym();
+@@ -3029,9 +3029,9 @@ extern INT set_root_parameters ();
+ extern INT set_tex_polynom_parameter();
+ extern INT setup_numbers();
+ extern INT set_useful_monopolies ();
+-extern OP s_ff_c();
+-extern INT s_ff_ci();
+-extern INT s_ff_di();
++extern OP s_ff_c() __attribute__((pure));
++extern INT s_ff_ci() __attribute__((pure));
++extern INT s_ff_di() __attribute__((pure));
+ extern INT s_ff_ii();
+ extern OBJECTKIND s_gr_k();
+ extern OP s_gr_kn();
+@@ -3045,11 +3045,11 @@ extern OP s_gr_xkoori();
+ extern OP s_gr_ykoori();
+ extern INT signum();
+ extern INT signum_permutation();
+-extern INT s_i_i();
++extern INT s_i_i() __attribute__((pure));
+ extern INT singularp();
+ extern INT Sinus_eingabe();
+ extern INT s_i_wt();
+-extern INT skewpartitionp();
++extern INT skewpartitionp() __attribute__((pure));
+ extern INT skewplane_plane();
+ extern INT skip_comment();
+ extern INT skip_integer();
+@@ -3062,7 +3062,7 @@ extern INT s_kr_gli();
+ extern OP s_kr_i();
+ extern OP s_kr_v();
+ extern INT Sk_wt();
+-extern OP s_lc_poly();
++extern OP s_lc_poly() __attribute__((pure));
+ extern OP s_l_n();
+ extern OP s_l_s();
+ extern OP s_m_h();
+@@ -3080,15 +3080,15 @@ extern INT s_mo_sii();
+ extern OP s_mo_sl();
+ extern INT s_mo_sli();
+ extern OP s_m_s();
+-extern OP s_mz_po();
++extern OP s_mz_po() __attribute__((pure));
+ extern OP s_mz_v();
+-extern OP s_mz_vi();
+-extern INT s_mz_vii();
++extern OP s_mz_vi() __attribute__((pure));
++extern INT s_mz_vii() __attribute__((pure));
+ extern INT sn_character ();
+ extern OP s_n_d();
+-extern OP s_n_dcd();
+-extern OP s_n_dci();
+-extern OP s_n_dcp();
++extern OP s_n_dcd() __attribute__((pure));
++extern OP s_n_dci() __attribute__((pure));
++extern OP s_n_dcp() __attribute__((pure));
+ extern INT sn_dimension ();
+ extern INT s_ni_wt();
+ extern INT S_nkq_maxgrad();
+@@ -3123,7 +3123,7 @@ extern INT specht_irred_characteristik()
+ extern INT specht_m_part_sc();
+ extern INT specht_poly();
+ extern INT specht_powersum();
+-extern INT special_eq();
++extern INT special_eq() __attribute__((pure));
+ extern INT special_mult_apply_homsym_homsym();
+ extern INT speicher_anfang();
+ extern INT speicher_ende();
+@@ -3216,7 +3216,7 @@ extern OP s_s_sl();
+ extern INT s_s_sli();
+ extern INT standardise_cold_tableaux_list ();
+ extern INT standardise_cyclo();
+-extern INT standardp();
++extern INT standardp() __attribute__((pure));
+ extern INT starpart();
+ extern INT starting_bar_schubert();
+ extern INT start_longint();
+@@ -3260,8 +3260,8 @@ extern INT s_t_uli();
+ extern OP s_t_us();
+ extern INT sub();
+ extern INT sub_apply();
+-extern INT sub_comp_bv();
+-extern INT sub_comp_part();
++extern INT sub_comp_bv() __attribute__((pure));
++extern INT sub_comp_part() __attribute__((pure));
+ extern INT sub_default();
+ extern INT sub_part_part();
+ extern INT substitute_one_matrix ();
+@@ -3286,6 +3286,9 @@ extern OP s_w_s();
+ extern INT S_wt();
+ extern INT s_x_nu_to_ypolynom();
+ extern INT symchar_hoch_n();
++extern int SYM_abs() __attribute__((const));
++extern int SYM_isdigit() __attribute__((const));
++extern int SYM_strlen() __attribute__((pure));
+ extern INT SYMMETRICA_bricknumber();
+ extern INT SYMMETRICA_EH();
+ extern INT SYMMETRICA_EM();
+@@ -3315,7 +3318,7 @@ extern INT tab_anfang();
+ extern INT tab_ende();
+ extern INT tab_funk();
+ extern INT tableaux_character ();
+-extern INT tableauxp();
++extern INT tableauxp() __attribute__((pure));
+ extern INT table_of_gauss_numbers();
+ extern INT table_of_Rbar_nkq();
+ extern INT table_of_R_nkq();
+@@ -3664,7 +3667,7 @@ extern INT t_ZYKEL_VECTOR();
+ extern INT UD_permutation();
+ extern INT umriss_tableaux();
+ extern INT unimodalp();
+-extern INT unitp_galois();
++extern INT unitp_galois() __attribute__((pure));
+ extern INT unrank_degree_permutation();
+ extern INT unrank_given_q_ff();
+ extern INT unrank_given_qk_point();
+@@ -3725,7 +3728,7 @@ extern INT young_polynom();
+ extern INT young_scalar_tafel();
+ extern INT young_tafel();
+ extern INT zeilenanfang();
+-extern INT zeilenende();
++extern INT zeilenende() __attribute__((pure));
+ extern INT zeilen_summe();
+ extern INT zentralprim();
+ extern INT zerlege_nk_codes();
+--- ./de.c.orig	2012-05-08 13:45:58.298473250 -0600
++++ ./de.c	2012-05-08 13:46:03.739466882 -0600
+@@ -428,12 +428,11 @@ INT memcheck(stelle) char *stelle;
+ INT sym_background = 0L;
+ INT sym_www = 0L;
+ INT sym_timelimit = 0L;
+-INT fatal_error(fehlertext) char *fehlertext;
++void fatal_error(fehlertext) char *fehlertext;
+ /* AK 270295 */
+ {
+     fprintf(stderr,"fatal error in function %s\n",fehlertext);
+     exit(11);
+-    return OK;
+ }
+ INT error(fehlertext) char *fehlertext;
+ /* if answer == a ==> abort
+@@ -751,8 +750,10 @@ int SYM_isdigit(a) char a; /* AK 040194
+ int SYM_strlen(a) char *a; /* AK 030294 */
+ { int i=0; while (*a++) i++; return i; }
+ 
++#ifndef DGTRUE
+ int SYM_memcmp(a,b,c) char *a,*b; /* AK 210294 */
+ { return memcmp(a,b,c); }
++#endif
+ 
+ int SYM_abs(a) INT a; /* AK 230695 */
+ { return (a>0 ) ? a : -a; }
+--- ./sr.c.orig	2007-12-06 09:30:35.000000000 -0700
++++ ./sr.c	2012-05-08 13:46:03.740466881 -0600
+@@ -977,7 +977,6 @@ INT sscan_schur(t,a) char *t; OP a;
+     INT i,n=1,erg = OK;
+     OP c,d,e;
+     char *v;
+-    int SYM_isdigit();
+ 
+     COP("sscan_schur(2)",a);
+ 
+@@ -1032,7 +1031,6 @@ INT sscan_homsym(t,a) char *t; OP a;
+     INT i,n=1,erg = OK;
+     OP c,d,e;
+     char *v;
+-    int SYM_isdigit();
+     COP("sscan_homsym(1)",t);
+     COP("sscan_homsym(2)",a);
+ 
+@@ -1086,7 +1084,6 @@ INT sscan_elmsym(t,a) char *t; OP a;
+     INT i,n=1,erg = OK;
+     OP c,d,e;
+     char *v;
+-    int SYM_isdigit();
+     COP("sscan_elmsym(1)",t);
+     CTO(EMPTY,"sscan_elmsym(2)",a);
+  
diff --git a/symmetrica-int.patch b/symmetrica-int.patch
new file mode 100644
index 0000000..37c7d52
--- /dev/null
+++ b/symmetrica-int.patch
@@ -0,0 +1,1330 @@
+--- ./poly.c.orig	2007-12-06 09:30:24.000000000 -0700
++++ ./poly.c	2012-05-08 10:49:27.695834061 -0600
+@@ -297,7 +297,7 @@ INT objectwrite_monom(f,a) FILE *f; OP a
+ {
+     INT erg = OK;
+     COP("objectwrite_monom(1)",f);
+-    fprintf(f,"%ld ",(INT)MONOM);
++    fprintf(f,"%d ",(INT)MONOM);
+     erg += objectwrite(f,S_MO_K(a)); 
+     erg += objectwrite(f,S_MO_S(a)); 
+     ENDR("objectwrite_monom");
+@@ -2029,10 +2029,10 @@ INT tex_polynom(poly) OP poly;
+                 {
+                 hbool=(INT)0;
+                 if (S_M_IJI(z,i,j) >1L)
+-                    fprintf(texout," x_{%ld,%ld}^{%ld} ",
++                    fprintf(texout," x_{%d,%d}^{%d} ",
+                         i,j,S_M_IJI(z,i,j));
+                 else 
+-                    fprintf(texout," x_{%ld,%ld} ", i,j);
++                    fprintf(texout," x_{%d,%d} ", i,j);
+                 texposition += 15L;
+                 }
+             }
+@@ -2042,13 +2042,13 @@ INT tex_polynom(poly) OP poly;
+             {
+                 hbool=(INT)0;
+                 if (tex_poly_var == NUMERICAL) /* AK 090395 */
+-            fprintf(texout,"x_{%ld}",i+tex_poly_first_var_index);
++            fprintf(texout,"x_{%d}",i+tex_poly_first_var_index);
+                 else
+             fprintf(texout,"%c",(char)( 'a'+i+tex_poly_first_var_index));
+                 texposition ++;
+                 if (S_PO_SII(zeiger,i) != 1L)
+                 {
+-                    fprintf(texout,"^{%ld}",S_PO_SII(zeiger,i));
++                    fprintf(texout,"^{%d}",S_PO_SII(zeiger,i));
+                     texposition += 10L;
+                 };
+             };
+@@ -2948,11 +2948,11 @@ INT maple_polynom(poly) OP poly;
+         for (i= 0L ;i < S_PO_SLI(zeiger); i++)
+             if (S_PO_SII(zeiger,i) > 0L)
+             {
+-                fprintf(texout,"*x%ld",i+1);
++                fprintf(texout,"*x%d",i+1);
+                 texposition ++;
+                 if (S_PO_SII(zeiger,i) != 1L)
+                     {
+-                    fprintf(texout,"^%ld",S_PO_SII(zeiger,i));
++                    fprintf(texout,"^%d",S_PO_SII(zeiger,i));
+                     texposition += 10L;
+                     };
+             };
+--- ./nb.c.orig	2007-12-06 09:30:15.000000000 -0700
++++ ./nb.c	2012-05-08 10:41:40.497297377 -0600
+@@ -1402,7 +1402,7 @@ INT objectwrite_number(f,number) FILE *f
+ /* AK 200891 V1.3 */
+ {
+ #ifdef NUMBERTRUE
+-    fprintf(f," %ld\n",(INT)S_O_K(number));
++    fprintf(f," %d\n",(INT)S_O_K(number));
+     objectwrite(f,S_N_S(number));
+     switch (S_O_K(number))
+     {    
+@@ -1657,7 +1657,7 @@ INT nb_ende()
+ {
+ #ifdef CYCLOTRUE
+     if (number_mem != 0L)
+-        fprintf(stderr,"error in number memory %ld\n",number_mem);
++        fprintf(stderr,"error in number memory %d\n",number_mem);
+     return OK;
+ #endif
+ }
+@@ -1941,13 +1941,13 @@ static INT SCMPCO(self_type,coeff_type,r
+ 
+     init(MONOPOLY,result);
+     printeingabe("Length of list: ");  /* AK 080891 */
+-    scanf("%ld",&n);
++    scanf("%d",&n);
+     for (i=0L;i<n;i++)
+     {    
+-        sprintf(a,"%ld-th monomial (self) ",i);
++        sprintf(a,"%d-th monomial (self) ",i);
+         printeingabe(a);
+         scan(self_type,x);
+-        sprintf(a,"%ld-th monomial (koeff) ",i);
++        sprintf(a,"%d-th monomial (koeff) ",i);
+         printeingabe(a);
+         scan(coeff_type,y);
+         if (nullp(y))
+@@ -4906,7 +4906,7 @@ static INT setup_cyclotomic_table(filena
+             return(ERROR);
+         }
+     }
+-    if ( fscanf(f," %ld",&zzno_cyclos) == 0 || zzno_cyclos < 1L ||
++    if ( fscanf(f," %d",&zzno_cyclos) == 0 || zzno_cyclos < 1L ||
+         (zzcyclo_table
+         = (CYCLO_DATA *) SYM_calloc((int)zzno_cyclos,sizeof(CYCLO_DATA))
+         ) == NULL
+@@ -5077,11 +5077,11 @@ INT print_cyclo_table()
+ 
+     if (!cyclo_table_set)
+         return(ERROR);
+-    printf("Number of cyclo data on table: %ld\n",zzno_cyclos);
++    printf("Number of cyclo data on table: %d\n",zzno_cyclos);
+     ptr    = zzcyclo_table;
+     for (i=0L;i<zzno_cyclos;i++)
+     {    
+-        printf("Table item %ld: ",i);
++        printf("Table item %d: ",i);
+         print_cyclo_data(ptr);
+         ptr++;
+     }
+@@ -5100,7 +5100,7 @@ INT print_cyclo_list()
+     list_ptr    = zzcyclo_list;
+     while (list_ptr != NULL)
+     {    
+-        printf("List item %ld: ",i++);
++        printf("List item %d: ",i++);
+         print_cyclo_data((CYCLO_DATA *) S_L_S(list_ptr));
+         list_ptr    = S_L_N(list_ptr);
+     }
+@@ -5153,7 +5153,7 @@ INT save_cyclo_list(filename) char *file
+     else
+     {    
+         fseek(f,0L,0);
+-        fscanf(f,"%ld",&i);
++        fscanf(f,"%d",&i);
+         fseek(f,0L,2);
+         printf("Cyclo data being appended to file %s.\n",name);
+     }
+@@ -5170,7 +5170,7 @@ INT save_cyclo_list(filename) char *file
+         i++;
+     }
+     fseek(f,0L,0);
+-    fprintf(f,"%8ld",i);
++    fprintf(f,"%8d",i);
+     fclose(f);
+     return(OK);
+ }
+--- ./bruch.c.orig	2007-12-06 09:30:00.000000000 -0700
++++ ./bruch.c	2012-05-08 10:27:19.153254904 -0600
+@@ -43,7 +43,7 @@ INT bruch_ende()
+     if (no_banner != TRUE)
+     if (mem_counter_bruch != 0L)
+         {
+-        fprintf(stderr,"mem_counter_bruch = %ld\n",mem_counter_bruch);
++        fprintf(stderr,"mem_counter_bruch = %d\n",mem_counter_bruch);
+         erg += error("bruch memory not freed");
+         goto endr_ende;
+         }
+@@ -1957,7 +1957,7 @@ INT objectwrite_bruch(f,a) FILE *f; OP a
+ {
+     INT erg = OK;
+     CTO(BRUCH,"objectwrite_bruch(2)",a);
+-    fprintf(f,"%ld\n", (INT)BRUCH);
++    fprintf(f,"%d\n", (INT)BRUCH);
+     erg += objectwrite(f,S_B_O(a));
+     erg += objectwrite(f,S_B_U(a)); 
+     ENDR("objectwrite_bruch");
+--- ./lo.c.orig	2007-12-06 09:30:03.000000000 -0700
++++ ./lo.c	2012-05-08 10:36:57.032649024 -0600
+@@ -421,7 +421,7 @@ static INT locms1(lx) struct loc *lx;
+     }
+   if (cc) 
+     {
+-    fprintf(stderr,"cc=%ld %ld %ld %ld\n",cc,lx->w0,lx->w1,lx->w2);
++    fprintf(stderr,"cc=%d %d %d %d\n",cc,lx->w0,lx->w1,lx->w2);
+     error("internal error:LO7");
+     }
+   return(c);
+@@ -1512,7 +1512,7 @@ static INT ganzein(fp,x) FILE *fp; struc
+     char c;
+     
+ 
+-    fscanf(fp,"%ld",&i);
++    fscanf(fp,"%d",&i);
+     if (i <(INT)0) 
+         {
+         sgn = (signed char)-1;
+@@ -1521,7 +1521,7 @@ static INT ganzein(fp,x) FILE *fp; struc
+     ganzint(x,  i % gd.basis);
+     while ((c=getc(fp)) == (char) gd.folgezeichen)
+         {
+-        fscanf(fp,"%ld",&i);
++        fscanf(fp,"%d",&i);
+         if (i <(INT)0) 
+             {
+             return error("internal error LO14");
+@@ -1572,11 +1572,11 @@ static INT ganzfziffer(zd) struct zahlda
+     else    {
+         z = holeziffer(zd);
+         if (zd->ziffernzahl > 0) zd->mehr=TRUE; else zd->mehr=FALSE;
+-        sprintf(buffer,"%ld",z);
++        sprintf(buffer,"%d",z);
+         f0 = gd.basislaenge-strlen(buffer);
+         sprintf(zd->ziffer,"%s","000000000000");
+             /* max. 12 Nullen */
+-        sprintf(zd->ziffer + f0,"%ld",z);
++        sprintf(zd->ziffer + f0,"%d",z);
+         if (zd->mehr == TRUE)
+             {
+ 	    if (nofolgezeichen)
+@@ -1648,12 +1648,12 @@ static INT ganz1ziffer(zd,x) struct zahl
+         if (zd->mehr == TRUE)
+             {
+ 	    if (nofolgezeichen)
+-		  sprintf(zd->ziffer,"%s%ld",zd->ziffer,z);
++		  sprintf(zd->ziffer,"%s%d",zd->ziffer,z);
+             else 
+-		  sprintf(zd->ziffer,"%s%ld%c",zd->ziffer,z,gd.folgezeichen);
++		  sprintf(zd->ziffer,"%s%d%c",zd->ziffer,z,gd.folgezeichen);
+             }
+         else    
+-          sprintf(zd->ziffer,"%s%ld",zd->ziffer,z);
++          sprintf(zd->ziffer,"%s%d",zd->ziffer,z);
+         }
+     locrette(& xx.floc);
+     return(OK);
+@@ -4304,7 +4304,7 @@ INT objectwrite_longint(f,l) FILE *f; OP
+         goto owlende;
+         }
+ 
+-    fprintf(f," %ld ",LONGINT);
++    fprintf(f," %d ",LONGINT);
+     ls=S_O_S(l);
+     erg += ganzaus(f, ls.ob_longint); 
+     fprintf(f,"\n"); 
+@@ -4340,7 +4340,7 @@ INT debugprint_longint(a) OP a;
+     for (k=0L;k<doffset;k++) fprintf(stderr," ");
+     fprintf(stderr,"kind:22=longint\n");
+     for (k=0L;k<doffset;k++) fprintf(stderr," ");
+-    fprintf(stderr,"laenge = %ld\n",
++    fprintf(stderr,"laenge = %d\n",
+         c.ob_longint->laenge);
+     for (k=0L;k<doffset;k++) fprintf(stderr," ");
+     fprintf(stderr,"signum = %d\n",
+@@ -4349,7 +4349,7 @@ INT debugprint_longint(a) OP a;
+     while (alocx != NULL)
+         {
+         for (k=0L;k<doffset;k++) fprintf(stderr," ");
+-        fprintf(stderr,"%ld %ld %ld\n",alocx->w0,alocx->w1,alocx->w2);
++        fprintf(stderr,"%d %d %d\n",alocx->w0,alocx->w1,alocx->w2);
+         alocx= alocx->nloc;
+         }
+     return(OK);
+--- ./ma.c.orig	2007-12-06 09:30:04.000000000 -0700
++++ ./ma.c	2012-05-08 10:37:45.889588413 -0600
+@@ -611,7 +611,7 @@ ma:     erg = OK;
+             err = error("m_ilih_m:self == NULL ");
+             if (err==ERROR_EXPLAIN) 
+                 fprintf(stderr,
+-                        "I wanted a %ld  x %ld matrix", 
++                        "I wanted a %d  x %d matrix", 
+                         len,
+                         height
+                        ); 
+@@ -1631,25 +1631,25 @@ OP s_m_ij(a,i,j) OP a; INT i,j;
+     if (i < (INT)0)
+         {
+         debugprint(a);
+-        fprintf(stderr,"index = %ld\n",i);
++        fprintf(stderr,"index = %d\n",i);
+         error("s_m_ij:row index too small");
+         }
+     if (i >= s_m_hi(a))
+         {
+         debugprint(a);
+-        fprintf(stderr,"index = %ld\n",i);
++        fprintf(stderr,"index = %d\n",i);
+         error("s_m_ij:row index too big");
+         }
+     if (j >= s_m_li(a))
+         {
+         debugprint(a);
+-        fprintf(stderr,"index = %ld\n",j);
++        fprintf(stderr,"index = %d\n",j);
+         error("s_m_ij:column index too big");
+         }
+     if (j < (INT)0)
+         {
+         debugprint(a);
+-        fprintf(stderr,"index = %ld\n",j);
++        fprintf(stderr,"index = %d\n",j);
+         error("s_m_ij:column index too small");
+         }
+     return(s_m_s(a) + (s_m_li(a)*i+j) ); 
+@@ -1939,7 +1939,7 @@ INT objectwrite_matrix(fp,matrix) FILE *
+ {
+     INT i,j;
+ 
+-    fprintf(fp, " %ld ",MATRIX);
++    fprintf(fp, " %d ",MATRIX);
+     objectwrite(fp,S_M_H(matrix));
+     /* zuerst die hoehe */
+     objectwrite(fp,S_M_L(matrix));
+--- ./mo.c.orig	2007-12-06 09:30:09.000000000 -0700
++++ ./mo.c	2012-05-08 10:38:36.113526109 -0600
+@@ -3017,7 +3017,7 @@ static INT _append_dec(decomp,row,col,n,
+ 	info[1]=pz;
+ 	info[2]=row;
+ 	info[3]=col;
+-	fprintf(dfp,"%ld %ld %ld %ld \n ",info[0],info[1],info[2],info[3]);
++	fprintf(dfp,"%d %d %d %d \n ",info[0],info[1],info[2],info[3]);
+ 	j = info[2] * info[3];
+ 	for (i=(INT)0; i<j;i++)
+ 		fprintf(dfp,"%d ",(int)decomp[i]);
+@@ -3373,7 +3373,7 @@ INT moddg(prime,llambda,pi,dmat) OP prim
+ 		SYM_free(part);
+ 		SYM_free(darmat[0]); /* AK 020692 statt free(darmat) */
+ 		SYM_free(darmat[1]); /* AK 020692 statt free(darmat) */
+-		fprintf(stderr,"error-no = %ld\n",dim);
++		fprintf(stderr,"error-no = %d\n",dim);
+ 		return error("mo.c: internal MO-15");
+ 	}
+ 	m_ilih_m(dim,dim,dmat);
+@@ -4789,7 +4789,7 @@ INT dimension_mod(part,prim,res) OP part
+ 
+ 	if (S_I_I(prim) < (INT)0)
+ 	{
+-		fprintf(stderr,"number = %ld\n",S_I_I(prim));
++		fprintf(stderr,"number = %d\n",S_I_I(prim));
+ 		error("dimension_mod: prime number (2. parameter) is negativ");
+ 		goto endr_ende;
+ 	}
+@@ -4800,7 +4800,7 @@ INT dimension_mod(part,prim,res) OP part
+ 	}
+ 	if (not primep(prim))
+ 	{
+-		fprintf(stderr,"number = %ld\n",S_I_I(prim));
++		fprintf(stderr,"number = %d\n",S_I_I(prim));
+ 		error("dimension_mod: prime number (2. parameter) is not prime");
+ 		goto endr_ende;
+ 	}
+--- ./ta.c.orig	2012-05-08 10:25:45.974370525 -0600
++++ ./ta.c	2012-05-08 10:56:17.992325466 -0600
+@@ -29,7 +29,7 @@ INT tab_ende()
+     INT erg = OK;
+     if (mem_counter_tab != 0L)
+         {
+-        fprintf(stderr,"mem_counter_tab = %ld\n",mem_counter_tab);
++        fprintf(stderr,"mem_counter_tab = %d\n",mem_counter_tab);
+         erg += error("tab memory not freed");
+         }
+     return erg;
+@@ -313,7 +313,7 @@ INT objectwrite_tableaux(f,a) FILE *f; O
+     INT erg = OK;
+     CTO(TABLEAUX,"objectwrite_tableaux(2)",a);
+     COP("objectwrite_tableaux(1)",f);
+-    fprintf(f,"%ld ",(INT)S_O_K(a));
++    fprintf(f,"%d ",(INT)S_O_K(a));
+     erg += objectwrite(f,S_T_U(a));
+     erg += objectwrite(f,S_T_S(a));
+     ENDR("objectwrite_tableaux");
+@@ -460,12 +460,12 @@ INT tex_tableaux(a) OP a;
+                 fprintf(texout,"\\vrule height10pt depth3pt$");
+ /* s_t_iji statt S_T_IJI */
+             if (s_t_iji(a,S_PA_LI(S_T_U(a))-1-i,j) < 10L)
+-                fprintf(texout,"\\ %ld",
++                fprintf(texout,"\\ %d",
+ /* s_t_iji statt S_T_IJI */
+                     s_t_iji(a,S_PA_LI(S_T_U(a))-1-i,j));
+ /* s_t_iji statt S_T_IJI */
+             else if (s_t_iji(a,S_PA_LI(S_T_U(a))-1-i,j) < 100L)
+-                fprintf(texout,"%ld",
++                fprintf(texout,"%d",
+ /* s_t_iji statt S_T_IJI */
+                     s_t_iji(a,S_PA_LI(S_T_U(a))-1-i,j));
+             else return
+--- ./sc.c.orig	2007-12-06 09:30:34.000000000 -0700
++++ ./sc.c	2012-05-08 10:54:49.992434549 -0600
+@@ -1329,7 +1329,7 @@ INT objectwrite_symchar(fp,a) FILE *fp;
+ /* AK 260291 V1.2 */ /* AK 200891 V1.3 */
+     {
+     INT erg=OK;
+-    fprintf(fp,"%ld\n",(INT)SYMCHAR);
++    fprintf(fp,"%d\n",(INT)SYMCHAR);
+     erg += objectwrite(fp,S_SC_D(a));
+     erg += objectwrite(fp,S_SC_P(a));
+     erg += objectwrite(fp,S_SC_W(a));
+--- ./list.c.orig	2007-12-06 09:30:03.000000000 -0700
++++ ./list.c	2012-05-08 10:35:15.808774591 -0600
+@@ -31,7 +31,7 @@ INT list_ende()
+     if (no_banner != TRUE)
+     if (mem_counter_list != 0L)
+         {
+-        fprintf(stderr,"mem_counter_list = %ld\n",mem_counter_list);
++        fprintf(stderr,"mem_counter_list = %d\n",mem_counter_list);
+         erg += error("list memory not freed");
+         goto endr_ende;
+         }
+@@ -1127,7 +1127,7 @@ INT objectwrite_list(f,a) FILE *f; OP a;
+ /* AK 210690 V1.1 */ /* AK 100591 V1.2 */
+ /* AK 060891 V1.3 */
+ {
+-    fprintf(f,"%ld ", (INT)S_O_K(a));
++    fprintf(f,"%d ", (INT)S_O_K(a));
+     if (S_L_S(a) == NULL) /* 100591 */
+         fprintf(f,"%ld\n",0L);
+     else    {
+@@ -1151,7 +1151,7 @@ INT objectread_list(f,a) FILE *f; OP a;
+ /* AK 060891 V1.3 */
+ {
+     INT i;
+-    fscanf(f,"%ld",&i);
++    fscanf(f,"%d",&i);
+     if (i == 0L) 
+         b_sn_l(NULL,NULL,a);
+     else if (i == 1L)
+@@ -1161,7 +1161,7 @@ INT objectread_list(f,a) FILE *f; OP a;
+         }
+     else
+         return error("objectread_list: wrong format (1) ");
+-    fscanf(f,"%ld",&i);
++    fscanf(f,"%d",&i);
+     if (i == 0L) 
+         return OK;
+     else if (i == 1L) 
+--- ./sb.c.orig	2007-12-06 09:30:34.000000000 -0700
++++ ./sb.c	2012-05-08 10:54:36.240451596 -0600
+@@ -880,7 +880,7 @@ gedruckt werden nur die stellen die vers
+             (i <S_SCH_SLI(b)) ; i++ )
+         {
+             if (S_SCH_SII(x,i)==S_SCH_SII(b,i)) printf(".,");
+-            else printf("%ld,",S_SCH_SII(b,i));
++            else printf("%d,",S_SCH_SII(b,i));
+             zeilenposition += 2L;
+         }
+         printf("]\n");
+@@ -890,7 +890,7 @@ gedruckt werden nur die stellen die vers
+             (i <S_SCH_SLI(b)) ; i++ )
+         {
+             if (S_SCH_SII(x,i)==S_SCH_SII(b,i)) printf(".,");
+-            else printf("%ld,",S_SCH_SII(x,i));
++            else printf("%d,",S_SCH_SII(x,i));
+             zeilenposition = 0L;
+         }
+         printf("]\n\n");
+@@ -1417,13 +1417,13 @@ INT tex_2schubert_monom_summe(b) OP b;
+             
+             if (S_PO_SII(z,i) == (INT)1)
+                 {
+-                fprintf(texout,"$ (x_%ld - y_%ld) $ ",j,k-j);
++                fprintf(texout,"$ (x_%d - y_%d) $ ",j,k-j);
+                 texposition += (INT)10;
+                 }
+             else
+             if (S_PO_SII(z,i) > (INT)1)
+                 {
+-                fprintf(texout,"$ (x_%ld - y_%ld)^%ld $ ",j,k-j,S_PO_SII(z,i));
++                fprintf(texout,"$ (x_%d - y_%d)^%d $ ",j,k-j,S_PO_SII(z,i));
+                 texposition += (INT)10;
+                 }
+ 
+--- ./hash.c.orig	2007-12-06 09:30:02.000000000 -0700
++++ ./hash.c	2012-05-08 10:30:45.577109820 -0600
+@@ -585,10 +585,10 @@ INT print_stat_hashtable(a) OP a;
+ /* AK 0602002 */
+ {
+     INT i;
+-    printf("entries = %ld size = %ld\n",S_V_II(a,S_V_LI(a)),S_V_LI(a));
++    printf("entries = %d size = %d\n",S_V_II(a,S_V_LI(a)),S_V_LI(a));
+     printf("entires per slot (>1 == collision)\n");
+     for (i=0;i<S_V_LI(a);i++)
+-        printf(" %ld ",(EMPTYP(S_V_I(a,i)) ? -S_V_II(a,i) : S_V_LI(S_V_I(a,i)) ) );
++        printf(" %d ",(EMPTYP(S_V_I(a,i)) ? -S_V_II(a,i) : S_V_LI(S_V_I(a,i)) ) );
+     printf("\n");
+     return OK;
+ }
+--- ./vc.c.orig	2007-12-06 09:30:49.000000000 -0700
++++ ./vc.c	2012-05-08 10:57:24.640242851 -0600
+@@ -47,7 +47,7 @@ INT vec_ende()
+     if (no_banner != TRUE)
+     if (mem_counter_vec != (INT)0)
+         {
+-        fprintf(stderr,"mem_counter_vec = %ld\n",mem_counter_vec);
++        fprintf(stderr,"mem_counter_vec = %d\n",mem_counter_vec);
+         erg += error("vec memory not freed");
+         }
+ #ifdef UNDEF
+@@ -1461,7 +1461,7 @@ OP s_v_i(a,i) OP a; INT i;
+     INT j;
+     if (i<(INT)0) 
+         { 
+-        fprintf(stderr,"index = %ld\n",i);
++        fprintf(stderr,"index = %d\n",i);
+         error("s_v_i:negative index"); 
+         return(NULL); 
+         }
+@@ -1469,14 +1469,14 @@ OP s_v_i(a,i) OP a; INT i;
+         {
+         if (i > (j=s_v_li(a)) ) 
+         { 
+-        fprintf(stderr,"index = %ld dimension = %ld\n",i,j);
++        fprintf(stderr,"index = %d dimension = %d\n",i,j);
+         error("s_v_i hashtable:index too big"); 
+         return(NULL); 
+         }
+         }
+     else if (i >= (j=s_v_li(a)) ) 
+         { 
+-        fprintf(stderr,"index = %ld dimension = %ld\n",i,j);
++        fprintf(stderr,"index = %d dimension = %d\n",i,j);
+         error("s_v_i:index too big"); 
+         return(NULL); 
+         }
+@@ -1633,7 +1633,7 @@ INT sprint_integervector(t,a) char *t; O
+     for (i=0;i<S_V_LI(a);i++)
+         {
+         if (i>0) { sprintf(t,","); t++; }
+-        sprintf(t,"%ld",S_V_II(a,i));
++        sprintf(t,"%d",S_V_II(a,i));
+         t += intlog(S_V_I(a,i));
+         if (S_V_II(a,i) < 0) t++;
+         }
+@@ -1716,7 +1716,7 @@ INT objectwrite_bv(filename,vec) FILE *f
+     size_t n;
+     COP("objectwrite_bv(1)",filename);
+     COP("objectwrite_bv(2)",vec);
+-    fprintf(filename," %ld ",S_O_K(vec));
++    fprintf(filename," %d ",S_O_K(vec));
+     objectwrite(filename,S_V_L(vec));
+     n = fwrite(S_V_S(vec),(size_t)1,(size_t)S_BV_LI(vec),filename);
+     if (n != S_BV_LI(vec))
+@@ -1737,7 +1737,7 @@ INT objectwrite_vector(filename,vec) FIL
+     INT erg = OK;
+     COP("objectwrite_vector(1)",filename);
+     COP("objectwrite_vector(2)",vec);
+-    fprintf(filename," %ld ",S_O_K(vec));
++    fprintf(filename," %d ",S_O_K(vec));
+ 
+     erg += objectwrite(filename,S_V_L(vec));
+ 
+--- ./rest.c.orig	2012-05-08 10:25:45.977370522 -0600
++++ ./rest.c	2012-05-08 10:52:26.479612446 -0600
+@@ -432,7 +432,7 @@ INT error_during_computation_code(t,code
+ /* AK 170698 V2.0 */
+     {
+     INT err;
+-    fprintf(stderr,"function: %s code: %ld \n",t,code);
++    fprintf(stderr,"function: %s code: %d \n",t,code);
+     err = error("error during computation");
+     return ERROR;
+     }
+@@ -2551,11 +2551,11 @@ INT tex_integer(a) OP a;
+     if (S_I_I(a) <0L) texposition++; 
+     if (ts == 0L)
+     {
+-        fprintf(texout," $%ld$ ",S_I_I(a)); 
++        fprintf(texout," $%d$ ",S_I_I(a)); 
+         texposition += 4L;
+     }
+     else
+-        fprintf(texout," %ld ",S_I_I(a)); 
++        fprintf(texout," %d ",S_I_I(a)); 
+     return OK;
+     }
+ 
+@@ -2625,7 +2625,7 @@ INT objectread_integer(filename,obj) FIL
+     INT eingabe;
+     INT erg = OK;
+     COP("objectread_integer(1)",filename);
+-    fscanf(filename,"%ld",&eingabe); 
++    fscanf(filename,"%d",&eingabe); 
+     M_I_I(eingabe,obj); 
+     ENDR("objectread_integer");
+     }
+@@ -2636,7 +2636,7 @@ INT objectwrite_integer(filename,obj) FI
+     { 
+     INT erg = OK;
+     COP("objectwrite_integer(1)",filename);
+-    fprintf(filename," %ld %ld\n",(INT)INTEGER,S_I_I(obj)); 
++    fprintf(filename," %d %d\n",(INT)INTEGER,S_I_I(obj)); 
+     ENDR("objectwrite_integer");
+     }
+ 
+@@ -2646,7 +2646,7 @@ INT sprint_integer(string,a) char *strin
+     {
+     INT erg = OK;
+     CTO(INTEGER,"sprint_integer(2)",a);
+-    sprintf(string,"%ld",S_I_I(a)); 
++    sprintf(string,"%d",S_I_I(a)); 
+     ENDR("sprint_integer");
+     }
+ 
+@@ -2675,7 +2675,7 @@ INT fprint_integer(f,a) FILE *f; OP a;
+         if (S_I_I(a) < 0) 
+             zeilenposition++;  /* for the leading sign */
+         }
+-    fprintf(f,"%ld",S_I_I(a)); 
++    fprintf(f,"%d",S_I_I(a)); 
+     if (f == stdout) 
+         if (zeilenposition >= row_length)
+             { fprintf(f,"\n"); zeilenposition = 0; }
+@@ -2748,7 +2748,7 @@ INT test_integer()
+     println(b);
+     printf("test_integer:comp_integer_integer(a,b)\n");
+     erg=comp_integer_integer(a,b);
+-    printf("%ld\n",erg);
++    printf("%d\n",erg);
+     printf("test_integer:binom(a=5L,b=4L,c)\n");
+     m_i_i(5L,a); 
+     m_i_i(4L,b); 
+@@ -3179,7 +3179,7 @@ INT init(kind,a) OBJECTKIND kind; OP a;
+             break;
+ #endif /* VECTORTRUE */
+         default: 
+-            fprintf(stderr,"kind = %ld\n",(INT) kind);
++            fprintf(stderr,"kind = %d\n",(INT) kind);
+             return error("init:wrong kind");
+         }
+     
+@@ -3554,15 +3554,15 @@ INT test_callocobject()
+ /* AK 270689 V1.0 */ /* AK 181289 V1.1 */ /* AK 210891 V1.3 */
+     {
+     OP a = callocobject();
+-    printf("test_callocobject: sizeof(OP)=%d\n",sizeof(a));
+-    printf("test_callocobject: sizeof(*OP)=%d\n",sizeof(*a));
+-    printf("test_callocobject: sizeof(struct object)=%d\n",sizeof(struct object));
++    printf("test_callocobject: sizeof(OP)=%zu\n",sizeof(a));
++    printf("test_callocobject: sizeof(*OP)=%zu\n",sizeof(*a));
++    printf("test_callocobject: sizeof(struct object)=%zu\n",sizeof(struct object));
+     if (a==NULL) {
+         printf("test_callocobject: NULL-object");return(OK);
+         }
+-    printf("test_callocobject: a=%ld\n",(INT)a);
+-    printf("test_callocobject: a->ob_kind=%ld\n",(INT) (a->ob_kind));
+-    printf("test_callocobject: a->ob_self.ob_INT=%ld\n",
++    printf("test_callocobject: a=%p\n",a);
++    printf("test_callocobject: a->ob_kind=%d\n",(INT) (a->ob_kind));
++    printf("test_callocobject: a->ob_self.ob_INT=%d\n",
+                         (a->ob_self).ob_INT);
+     SYM_free(a);
+     return(OK);
+@@ -3573,9 +3573,9 @@ INT debugprint_object(a) OP a;
+     {
+     if (a==NULL) {
+     fprintf(stderr,"debugprint_object: NULL-object");return(OK);}
+-    fprintf(stderr,"debugprint_object: a=%ld\n",(INT)a);
+-    fprintf(stderr,"debugprint_object: kind=%ld\n",(INT)a->ob_kind);
+-    fprintf(stderr,"debugprint_object: self.INT=%ld\n",a->ob_self.ob_INT);
++    fprintf(stderr,"debugprint_object: a=%p\n",a);
++    fprintf(stderr,"debugprint_object: kind=%d\n",(INT)a->ob_kind);
++    fprintf(stderr,"debugprint_object: self.INT=%d\n",a->ob_self.ob_INT);
+     return(OK);
+     }
+ 
+@@ -3775,7 +3775,7 @@ INT objectwrite_skewpartition(f,a) FILE
+     {
+     INT erg = OK;
+     COP("objectwrite_skewpartition(1)",f);
+-    fprintf(f, "%ld ", (INT)SKEWPARTITION);
++    fprintf(f, "%d ", (INT)SKEWPARTITION);
+     erg += objectwrite(f,S_SPA_G(a));
+     erg += objectwrite(f,s_spa_k(a));
+     ENDR("objectwrite_skewpartition");
+@@ -4640,7 +4640,7 @@ INT scan_laurent(ergebnis) OP ergebnis;
+   INT l,erg=OK;
+   INT i;
+   erg += printeingabe("length of vector ");
+-  scanf("%ld",&l);
++  scanf("%d",&l);
+   if(l<2L)
+   {
+     erg+= m_il_nla(2L,ergebnis);
+--- ./gra.c.orig	2007-12-06 09:30:01.000000000 -0700
++++ ./gra.c	2012-05-08 10:30:09.073155103 -0600
+@@ -385,7 +385,7 @@ INT latex_verband(a) OP a;
+ {
+ 	INT i,j;
+ 
+-	fprintf(texout,"\n\\begin{picture}(%d,%d)\n",XDIM,YDIM);
++	fprintf(texout,"\n\\begin{picture}(%ld,%ld)\n",XDIM,YDIM);
+ 	for (i=s_v_li(s_gr_koor(a))-1; i>=0 ;i--)
+ 	{
+ 		fprintf(texout,"\\put(%d,%d){ \n",s_i_i(s_gr_xkoori(a,i)),
+--- ./zykelind.c.orig	2007-12-06 09:30:52.000000000 -0700
++++ ./zykelind.c	2012-05-08 10:57:55.321204819 -0600
+@@ -4244,9 +4244,9 @@ INT frip_latex_zykelind(a) OP a;
+       if (!nullp(S_V_I(S_PO_S(monom),i))) 
+       {
+         if (!einsp(S_V_I(S_PO_S(monom),i))) 
+-        printf("x_{%d}^{%d}\n",i+1L,S_V_II(S_PO_S(monom),i));
++        printf("x_{%ld}^{%d}\n",i+1L,S_V_II(S_PO_S(monom),i));
+         else
+-        printf("x_{%d}\n",i+1L);
++        printf("x_{%ld}\n",i+1L);
+       }
+       if (S_PO_N(monom)!=NULL) printf("+");
+       monom=S_PO_N(monom);
+--- ./hiccup.c.orig	2007-12-06 09:30:02.000000000 -0700
++++ ./hiccup.c	2012-05-08 10:32:03.129013615 -0600
+@@ -310,7 +310,7 @@ INT tex_hecke_monopoly(a) OP a;
+ 			else
+ 				tex (S_MO_K(S_L_S(z)));
+ 		}
+-		fprintf (texout," q^{%ld} ",S_I_I(S_MO_S(S_L_S(z))));
++		fprintf (texout," q^{%d} ",S_I_I(S_MO_S(S_L_S(z))));
+ 		z = S_L_N(z);
+ 		if (z != NULL)
+ 		{
+@@ -3181,14 +3181,14 @@ INT check_hecke_generators (vector, p_ro
+ 
+ 	for (i=0;i<ni;i++)
+ 	{
+-		printf("%ldth square is ",i+1);
++		printf("%dth square is ",i+1);
+ 		switch (check_hecke_quadratic(s_v_i(vector,i),p_root,flag))
+ 		{
+ 		case 0:
+ 			printf("O.K!\n");
+ 			break;
+ 		case 1:
+-			printf("O.K for primitive %ldth root!\n",S_I_I(p_root));
++			printf("O.K for primitive %dth root!\n",S_I_I(p_root));
+ 			break;
+ 		case 2:
+ 			printf("codswallop!\n");
+@@ -3200,14 +3200,14 @@ INT check_hecke_generators (vector, p_ro
+ 
+ 	for (i=1;i<ni;i++)
+ 	{
+-		printf("%ldth braid is ",i);
++		printf("%dth braid is ",i);
+ 		switch (check_braid(s_v_i(vector,i-1),s_v_i(vector,i),p_root,flag))
+ 		{
+ 		case 0:
+ 			printf("O.K!\n");
+ 			break;
+ 		case 1:
+-			printf("O.K for primitive %ldth root!\n",S_I_I(p_root));
++			printf("O.K for primitive %dth root!\n",S_I_I(p_root));
+ 			break;
+ 		case 2:
+ 			printf("codswallop!\n");
+@@ -3220,14 +3220,14 @@ INT check_hecke_generators (vector, p_ro
+ 	for (i=2;i<ni;i++)
+ 		for (j=0;j<i-1;j++)
+ 		{
+-			printf("(%ld,%ld)th commute is ",i+1,j+1);
++			printf("(%d,%d)th commute is ",i+1,j+1);
+ 			switch (check_commute(s_v_i(vector,i),s_v_i(vector,j),p_root,flag))
+ 			{
+ 			case 0:
+ 				printf("O.K!\n");
+ 				break;
+ 			case 1:
+-				printf("O.K for primitive %ldth root!\n",S_I_I(p_root));
++				printf("O.K for primitive %dth root!\n",S_I_I(p_root));
+ 				break;
+ 			case 2:
+ 				printf("codswallop!\n");
+--- ./bar.c.orig	2012-05-08 10:25:45.977370522 -0600
++++ ./bar.c	2012-05-08 10:26:38.009305958 -0600
+@@ -798,7 +798,7 @@ INT starting_bar_schubert(n,res) OP n,re
+     FILE *fp;
+     char s[100];
+ 
+-    sprintf(s,"startbarschubert%ld",S_I_I(n));
++    sprintf(s,"startbarschubert%d",S_I_I(n));
+     fp = fopen(s,"r");
+     if (fp != NULL)
+         {
+--- ./ff.c.orig	2007-12-06 09:30:01.000000000 -0700
++++ ./ff.c	2012-05-08 10:29:21.426214210 -0600
+@@ -925,13 +925,13 @@ static INT UE_scan(Koerperzeiger) INT **
+     Zeichen = (char *) SYM_calloc(500,sizeof(char));
+     printeingabe("input of a finite field element");
+     printeingabe("degree of extension");
+-    scanf("%ld",&i);
++    scanf("%d",&i);
+     SYM_free((char *) Koerperelement);
+     Koerperelement = (INT *) UE_malloc((i+1)*sizeof(INT));
+     *Koerperzeiger = Koerperelement;
+     for (j=(INT)0;j<=i;j++)
+         Koerperelement[j] = (INT)0;
+-    fprintf(stderr,"input   of %ld entries, seperated by comma",i);
++    fprintf(stderr,"input   of %d entries, seperated by comma",i);
+     fprintf(stderr,"\nmissing entries are 0\n");
+     scanf("%s",Zeichen);
+     j = (INT)1;
+@@ -1006,12 +1006,12 @@ static INT UE_fZeige(f,Koerperzeiger) IN
+     Koerperelement = *Koerperzeiger;
+     for (i=(INT)1;i<Koerperelement[0];i++)
+         {
+-        fprintf(f,"%ld,",Koerperelement[i]);
++        fprintf(f,"%d,",Koerperelement[i]);
+         if (f == stdout) {
+             zeilenposition += (intlog_int(Koerperelement[i])+1);
+             }
+         }
+-    fprintf(f,"%ld",Koerperelement[Koerperelement[0]]);
++    fprintf(f,"%d",Koerperelement[Koerperelement[0]]);
+     if (f == stdout) {
+         zeilenposition += intlog_int(Koerperelement[Koerperelement[0]]);
+         }
+@@ -2069,7 +2069,7 @@ INT debugprint_ff(a) OP a;
+     fprintf(stderr,"ff:INT vektor =\n");
+     for (i=(INT)0;i<doffset;i++) fputc(' ',stderr);
+     for (i=(INT)0;i<= *iv;i++)
+-        fprintf(stderr,"%ld ",*(iv+i));
++        fprintf(stderr,"%d ",*(iv+i));
+     fprintf(stderr,"\n");
+     return OK;
+ }
+@@ -2165,10 +2165,10 @@ INT objectwrite_ff(f,a) FILE *f; OP a;
+     CTO(FF,"objectwrite_ff(2)",a);
+     {
+     INT i,*ip;
+-    fprintf(f,"%ld\n%ld\n%ld ", 
++    fprintf(f,"%d\n%d\n%d ", 
+               (INT)FF,S_FF_CI(a),S_FF_DI(a));
+     ip = S_FF_IP(a);
+-    for (i=0;i<S_FF_DI(a);i++) fprintf(f,"%ld ",ip[i+1]);
++    for (i=0;i<S_FF_DI(a);i++) fprintf(f,"%d ",ip[i+1]);
+     fputc('\n',f);
+     }
+     ENDR("objectwrite_bruch");
+@@ -2184,10 +2184,10 @@ INT objectread_ff(f,a) FILE *f; OP a;
+     COP("objectread_ff(1)",f);
+     {
+     INT i,j,*ip;
+-    fscanf(f,"%ld",&i);Charakteristik=i;
+-    fscanf(f,"%ld",&i);UE_Erw_Grad=i;
++    fscanf(f,"%d",&i);Charakteristik=i;
++    fscanf(f,"%d",&i);UE_Erw_Grad=i;
+     init_ff(a);ip = S_FF_IP(a);
+-    for (j=0;j<UE_Erw_Grad;j++) { fscanf(f,"%ld",&i); ip[j+1]=i;}
++    for (j=0;j<UE_Erw_Grad;j++) { fscanf(f,"%d",&i); ip[j+1]=i;}
+     ip[0]=UE_Erw_Grad;
+     M_I_I(Charakteristik,S_V_I(a,0));
+     }
+--- ./ko.c.orig	2007-12-06 09:30:02.000000000 -0700
++++ ./ko.c	2012-05-08 10:34:38.480820897 -0600
+@@ -224,7 +224,7 @@ INT tex_kostka(koma,vector) OP koma,vect
+         texposition = (INT)0;
+         for (j=(INT)0;j<=i;j++)
+             { fprintf (texout," & ");
+-            fprintf(texout," %ld ",S_M_IJI(koma,i,j)); };
++            fprintf(texout," %d ",S_M_IJI(koma,i,j)); };
+         for (j=i+1L;j<S_V_LI(vector);j++) 
+              fprintf(texout," & ");
+         fprintf(texout," \\cr \n");
+--- ./io.c.orig	2007-12-06 09:30:02.000000000 -0700
++++ ./io.c	2012-05-08 10:34:23.328839693 -0600
+@@ -89,7 +89,7 @@ INT printobjectkind(a) OP a;
+     case HASHTABLE: fprintf(stderr,"hashtable\n");break;
+     case INTEGERVECTOR: fprintf(stderr,"integervector\n");break;
+     case (OBJECTKIND) 0: fprintf(stderr,"empty-object\n");break;
+-    default: fprintf(stderr," %ld ",S_O_K(a));
++    default: fprintf(stderr," %d ",S_O_K(a));
+         fprintf(stderr,"unknown\n");
+         break;
+         };
+@@ -517,7 +517,7 @@ INT scan(kind,obj) OBJECTKIND kind; OP o
+ #endif /* WORDTRUE */
+         default:
+             {
+-            fprintf(stderr,"kind = %ld\n",kind);
++            fprintf(stderr,"kind = %d\n",kind);
+             erg += error("scan:wrong type");
+             goto endr_ende;
+             }
+@@ -541,7 +541,7 @@ INT skip(t,kind) char *t; OBJECTKIND kin
+             }
+         default:
+             {
+-            fprintf(stderr,"kind = %ld\n",kind);
++            fprintf(stderr,"kind = %d\n",kind);
+             erg += error("skip:wrong type");
+             goto endr_ende;
+             }
+@@ -595,7 +595,7 @@ INT sscan(t,kind,obj) char *t; OBJECTKIN
+ 
+         default:
+             {
+-            fprintf(stderr,"kind = %ld\n",kind);
++            fprintf(stderr,"kind = %d\n",kind);
+             error("sscan:wrong type");
+             return(ERROR);
+             }
+@@ -730,7 +730,7 @@ OBJECTKIND scanobjectkind()
+     if (i++ == 4L)fprintf(stderr,"\n"),i=0L;
+ 
+     fprintf(stderr,"\nwhat kind:? ");
+-    scanf("%ld",&erg);
++    scanf("%d",&erg);
+     if (erg == 46) erg = BARPERM;
+     return (OBJECTKIND)erg;
+     }
+@@ -746,7 +746,7 @@ INT objectread(f,obj) FILE *f; OP obj;
+     COP("objectread(2)",obj);
+ 
+     FREESELF(obj);
+-    i=fscanf(f,"%ld",&c);
++    i=fscanf(f,"%d",&c);
+     SYMCHECK(i!=1,"objectread:could not read datatype");
+     kind = (OBJECTKIND)c;
+     switch(kind)
+@@ -840,7 +840,7 @@ INT objectread(f,obj) FILE *f; OP obj;
+             break;
+ #endif /* VECTORTRUE */
+         default:  
+-            fprintf(stderr,"kind = %ld\n",kind);
++            fprintf(stderr,"kind = %d\n",kind);
+             erg += error("objectread:wrong type"); 
+             goto oe;
+         };
+@@ -1138,7 +1138,7 @@ static INT write_polynom(poly) OP    pol
+                         if(S_M_IJI(s_po_s(z),k,l) == 1L)
+                             fprintf(texout,"x_{%ld %ld} ",k+1L,l+1L);
+                         else
+-                            fprintf(texout,"x_{%ld %ld}^{%ld} ",k+1L,l+1L,S_M_IJI(s_po_s(z),k,l));
++                            fprintf(texout,"x_{%ld %ld}^{%d} ",k+1L,l+1L,S_M_IJI(s_po_s(z),k,l));
+             }
+             if(S_PO_N(z) != NULL)    
+             {
+--- ./perm.c.orig	2012-05-08 10:25:45.981370517 -0600
++++ ./perm.c	2012-05-08 10:47:41.928965166 -0600
+@@ -14,12 +14,12 @@ static INT co_co();
+ static INT co_co_2();
+ #define CPT(typ,text,a) CTO(PERMUTATION,text,a);if (S_P_K(a) != typ) \
+ fprintf(stderr,\
+-"wrong typ of permutation in %s\n typ should be %ld and it was %ld\n "\
++"wrong typ of permutation in %s\n typ should be %d and it was %d\n "\
+ ,text,typ,S_O_K(a));
+ #define CPTT(typ,typ2,text,a) CTO(PERMUTATION,text,a);if \
+ ((S_P_K(a) != typ)&&(S_P_K(a) != typ2)) \
+ fprintf(stderr,\
+-"wrong typ of permutation in %s\n typ should be %ld or %ld and it was %ld\n "\
++"wrong typ of permutation in %s\n typ should be %d or %d and it was %d\n "\
+ ,text,typ,typ2,S_O_K(a));
+ 
+ 
+@@ -123,7 +123,7 @@ INT perm_ende()
+     erg += freeall(old_kranz_tafel);
+     if (mem_counter_perm != 0L)
+         {
+-        fprintf(stderr,"mem_counter_perm = %ld\n",mem_counter_perm);
++        fprintf(stderr,"mem_counter_perm = %d\n",mem_counter_perm);
+         erg += error("permutation memory not freed");
+         }
+     if (next_perm_v != NULL)
+@@ -1439,7 +1439,7 @@ INT tex_lc(perm) OP perm;
+         texposition += 2L;
+         for (i=0L;i<S_V_LI(perm);i++)
+         { 
+-            fprintf(texout,"%ld",S_V_II(perm,i)); 
++            fprintf(texout,"%d",S_V_II(perm,i)); 
+             texposition ++; 
+         }
+         fprintf(texout,"$\\ "); 
+@@ -1450,7 +1450,7 @@ INT tex_lc(perm) OP perm;
+         texposition += 4L;
+         for (i=0L;i<S_V_LI(perm);i++)
+         { 
+-            fprintf(texout,"%ld",S_V_II(perm,i));
++            fprintf(texout,"%d",S_V_II(perm,i));
+             if (i != S_V_LI(perm)-1L) fprintf(texout,",");
+             texposition += 3L; 
+         }
+@@ -1476,7 +1476,7 @@ INT tex_permutation(perm) OP perm;
+         texposition += 3L;
+         for (i=0L;i<S_P_LI(perm);i++)
+         { 
+-            fprintf(texout,"%ld",S_P_II(perm,i)); 
++            fprintf(texout,"%d",S_P_II(perm,i)); 
+             texposition += 1L; 
+         }
+         fprintf(texout,"$\\ "); 
+@@ -1487,7 +1487,7 @@ INT tex_permutation(perm) OP perm;
+         for (i=0L;i<S_P_LI(perm);i++)
+         { 
+             texposition += 3L; 
+-            fprintf(texout,"%ld",S_P_II(perm,i));
++            fprintf(texout,"%d",S_P_II(perm,i));
+             if (i != S_P_LI(perm)-1L) fprintf(texout,",");
+         }
+         fprintf(texout,")$\\ "); 
+@@ -1512,7 +1512,7 @@ INT tex_rz(obj) OP obj;
+ 
+     fprintf(texout,"\\ $");
+     for (i=0L;i<S_V_LI(obj);i++)
+-        fprintf(texout,"\\sigma_{%ld}\\ ",S_V_II(obj,i));
++        fprintf(texout,"\\sigma_{%d}\\ ",S_V_II(obj,i));
+     fprintf(texout,"$\\ ");
+     ENDR("tex_rz");
+ }
+@@ -1580,7 +1580,7 @@ INT eq_permutation(a,b) OP a,b;
+         }
+     else
+         {
+-        fprintf(stderr,"kind a = %ld\nkind b = %ld\n", S_P_K(a), S_P_K(b));
++        fprintf(stderr,"kind a = %d\nkind b = %d\n", S_P_K(a), S_P_K(b));
+         debugprint(b);
+         return error("eq_permutation:different kinds of permutations");
+         }
+@@ -1601,7 +1601,7 @@ INT comp_permutation(a,b) OP a, b;
+         return comp(S_P_S(a),S_P_S(b));
+     else
+         {
+-        fprintf(stderr,"kind a = %ld\nkind b = %ld\n", S_P_K(a), S_P_K(b));
++        fprintf(stderr,"kind a = %d\nkind b = %d\n", S_P_K(a), S_P_K(b));
+         debugprint(b);
+         return error("comp_permutation:different kinds of permutations");
+         }
+@@ -2537,7 +2537,7 @@ INT objectread_permutation(filename,perm
+     CTO(EMPTY,"objectwrite_permutation(2)",perm);
+ 
+     erg += b_ks_p((OBJECTKIND)0, callocobject(),perm);
+-    fscanf(filename,"%ld",&i); kind = (OBJECTKIND)i;
++    fscanf(filename,"%d",&i); kind = (OBJECTKIND)i;
+     C_P_K(perm,kind);
+     erg += objectread(filename,S_P_S(perm));
+     ENDR("objectread_permutation");
+@@ -2552,8 +2552,8 @@ INT objectwrite_permutation(filename,per
+     COP("objectwrite_permutation(1)",filename);
+     CTO(PERMUTATION,"objectwrite_permutation(2)",perm);
+ 
+-    fprintf(filename,"%ld\n",(INT)PERMUTATION);
+-    fprintf(filename,"%ld\n",(INT)S_P_K(perm));
++    fprintf(filename,"%d\n",(INT)PERMUTATION);
++    fprintf(filename,"%d\n",(INT)S_P_K(perm));
+     erg += objectwrite(filename,S_P_S(perm));
+     ENDR("objectwrite_permutation");
+ }
+--- ./rh.c.orig	2007-12-06 09:30:32.000000000 -0700
++++ ./rh.c	2012-05-08 11:02:29.550632890 -0600
+@@ -96,11 +96,13 @@ static int del_var(v) struct REIHE_varia
+ static int copy_poly(a,b) struct REIHE_poly **b,*a;
+ /* AK 150393 */
+ {
+-   if (a==NULL)
+-      return (int)(*b = NULL);
++   if (a==NULL) {
++      *b = NULL;
++      return 0;
++   }
+    *b = (struct REIHE_poly *) SYM_malloc(sizeof(struct REIHE_poly));
+    if (*b == NULL)
+-      return (int)no_memory;
++      return (int)no_memory();
+    (*b)->grad = a->grad;
+ 
+    copy_mon(a->unten, & (*b)->unten);
+@@ -110,11 +112,13 @@ static int copy_poly(a,b) struct REIHE_p
+ static int copy_mon(a,b) struct REIHE_mon **b,*a;
+ /* AK 150393 */
+ {
+-   if (a==NULL)
+-      return (int)(*b = NULL);
++   if (a==NULL) {
++      *b = NULL;
++      return 0;
++   }
+    *b = (struct REIHE_mon *) SYM_malloc(sizeof(struct REIHE_mon));
+    if (*b == NULL)
+-      return (int)no_memory;
++      return (int)no_memory();
+    (*b)->coeff=callocobject();
+    copy(a->coeff, (*b)->coeff);
+    copy_mon(a->ref, & (*b)->ref);
+@@ -124,11 +128,13 @@ static int copy_mon(a,b) struct REIHE_mo
+ static int copy_var(a,b) struct REIHE_variablen **b,*a;
+ /* AK 150393 */
+ {
+-   if (a == NULL)
+-      return (int)(*b = NULL);
++   if (a == NULL) {
++      *b = NULL;
++      return 0;
++   }
+    *b = (struct REIHE_variablen *) SYM_malloc(sizeof(struct REIHE_variablen));
+    if (*b == NULL)
+-      return (int)no_memory;
++      return (int)no_memory();
+    (*b)->index = a->index;
+    (*b)->potenz = a->potenz;
+    copy_var(a->weiter, & (*b)->weiter);
+@@ -136,11 +142,13 @@ static int copy_var(a,b) struct REIHE_va
+ 
+ static int copy_rh(a,b) REIHE_zeiger a,*b;
+ {
+-   if (a == NULL)
+-      return (int)(*b = NULL);
++   if (a == NULL) {
++      *b = NULL;
++      return 0;
++   }
+    *b = (struct reihe *) SYM_malloc(sizeof(struct reihe));
+    if (*b == NULL)
+-      return (int)no_memory;
++      return (int)no_memory();
+    (*b)->exist = a->exist;
+    (*b)->reihenart = a->reihenart;
+    (*b)->z = a->z;
+@@ -179,7 +187,7 @@ static struct REIHE_variablen *new_drei(
+ static int free_drei(a) char *a; { SYM_free(a); }
+ static int free_zwei(a) char *a; { SYM_free(a); }
+ static int free_eins(a) char *a; { SYM_free(a); }
+-static int free_null_debug(a) char *a; { printf("free_null:%ld\n",a); SYM_free(a); }
++static int free_null_debug(a) char *a; { printf("free_null:%p\n",a); SYM_free(a); }
+ static int free_null(a) char *a; { SYM_free(a); }
+ 
+ static struct REIHE_mon *new_zwei()
+@@ -200,7 +208,7 @@ static struct reihe *new_null() {
+ static struct reihe *new_null_debug() { 
+    struct reihe *a;
+    a = (struct reihe*) SYM_calloc(1,sizeof(struct reihe)); 
+-   printf("new_null:%ld\n",a);
++   printf("new_null:%p\n",a);
+    return a; }
+ 
+ static INT initial_reihe(adress) REIHE_zeiger* adress;
+@@ -1160,7 +1168,7 @@ static INT monomausgabe(f, m) struct REI
+          do
+          {
+             if (zeigvar->potenz>0L)
+-               fprintf(f," X%ld^%ld",zeigvar->index,zeigvar->potenz);
++               fprintf(f," X%d^%d",zeigvar->index,zeigvar->potenz);
+ 	if (f == stdout) zeilenposition+=5L; /* AK 040893 */
+             zeigvar=zeigvar->weiter;
+ 
+@@ -2288,11 +2296,11 @@ static int debugprint_rh(a) REIHE_zeiger
+       return    fprintf(stderr,"struct reihe==NULL\n");
+       }
+    for (i=0L;i<doffset;i++) fputc(' ',stderr);
+-   fprintf(stderr,"exist = %ld\n",a->exist);
++   fprintf(stderr,"exist = %d\n",a->exist);
+    for (i=0L;i<doffset;i++) fputc(' ',stderr);
+-   fprintf(stderr,"reihenart = %ld\n",a->reihenart);
++   fprintf(stderr,"reihenart = %d\n",a->reihenart);
+    for (i=0L;i<doffset;i++) fputc(' ',stderr);
+-   fprintf(stderr,"z = %ld\n",a->z);
++   fprintf(stderr,"z = %d\n",a->z);
+    for (i=0L;i<doffset;i++) fputc(' ',stderr);
+    fprintf(stderr,"x = \n"); 
+    doffset += 2L;
+@@ -2328,7 +2336,7 @@ static int debugprint_rh_poly(a) struct
+       return    fprintf(stderr,"struct reihe_poly==NULL\n");
+       }
+    for (i=0L;i<doffset;i++) fputc(' ',stderr);
+-   fprintf(stderr,"grad = %ld\n",a->grad);
++   fprintf(stderr,"grad = %d\n",a->grad);
+    for (i=0L;i<doffset;i++) fputc(' ',stderr);
+    fprintf(stderr,"unten = \n"); 
+    doffset += 2L;
+@@ -2379,9 +2387,9 @@ static int debugprint_rh_var(a) struct R
+       return    fprintf(stderr,"struct reihe_var==NULL\n");
+       }
+    for (i=0L;i<doffset;i++) fputc(' ',stderr);
+-   fprintf(stderr,"index = %ld\n",a->index);
++   fprintf(stderr,"index = %d\n",a->index);
+    for (i=0L;i<doffset;i++) fputc(' ',stderr);
+-   fprintf(stderr,"potenz = %ld\n",a->potenz);
++   fprintf(stderr,"potenz = %d\n",a->potenz);
+    for (i=0L;i<doffset;i++) fputc(' ',stderr);
+    fprintf(stderr,"weiter = \n"); 
+    doffset += 2L;
+--- ./part.c.orig	2012-05-08 10:25:45.983370514 -0600
++++ ./part.c	2012-05-08 10:43:08.273188487 -0600
+@@ -817,7 +817,7 @@ INT fprint_partition(f,partobj) FILE
+         if (S_PA_II(partobj,i)<10)
+         /*AK partitionsteile kleiner 10 werden als Zahlen geschrieben */
+         { 
+-            fprintf(f,"%ld",S_PA_II(partobj,i));
++            fprintf(f,"%d",S_PA_II(partobj,i));
+             if (f == stdout) zeilenposition++; 
+         }
+         else if (S_PA_II(partobj,i)<16)
+@@ -830,7 +830,7 @@ INT fprint_partition(f,partobj) FILE
+         else    {
+             /* A.K. sonst werden die Teile als zahl mit 
+             abschliessenden senkrechten Strich geschrieben */
+-            fprintf(f,"%c%ld",'|',S_PA_II(partobj,i));
++            fprintf(f,"%c%d",'|',S_PA_II(partobj,i));
+             if(f==stdout) 
+                 zeilenposition+=(1+intlog(S_PA_I(partobj,i)));
+             };
+@@ -864,7 +864,7 @@ INT sprint_partition(f,partobj) char
+         if (S_PA_II(partobj,i)<10)
+         /*AK partitionsteile kleiner 10 werden als Zahlen geschrieben */
+         { 
+-            sprintf(f,"%ld",S_PA_II(partobj,i));
++            sprintf(f,"%d",S_PA_II(partobj,i));
+             f++; 
+         }
+         else if (S_PA_II(partobj,i)<16)
+@@ -877,7 +877,7 @@ INT sprint_partition(f,partobj) char
+         else    {
+             /* A.K. sonst werden die Teile als zahl mit 
+             abschliessenden senkrechten Strich geschrieben */
+-            sprintf(f,"%c%ld",'|',S_PA_II(partobj,i));
++            sprintf(f,"%c%d",'|',S_PA_II(partobj,i));
+             f+=(1+intlog(S_PA_I(partobj,i)));
+             };
+     ENDR("sprint_partition");
+@@ -1325,7 +1325,7 @@ INT first_partition(n,part) OP n,part;
+ 
+     if (S_I_I(n) < (INT)0) /* AK 020692 */
+         {
+-        fprintf(stderr,"input = %ld\n",S_I_I(n));
++        fprintf(stderr,"input = %d\n",S_I_I(n));
+         erg += error("first_partition:input < 0");
+         }
+     else if (S_I_I(n) == (INT)0) /* AK 020692 */
+@@ -2312,7 +2312,7 @@ INT part_ende()
+     if (no_banner != TRUE)
+     if (mem_counter_part != (INT)0)
+         {
+-        fprintf(stderr,"mem_counter_part = %ld\n",mem_counter_part);
++        fprintf(stderr,"mem_counter_part = %d\n",mem_counter_part);
+         erg += error("memory problem with partitions");
+         }
+ 
+@@ -3115,7 +3115,7 @@ INT objectread_partition(filename,part)
+     INT erg = OK;
+     COP("objectread_partition(1)",filename);
+     COP("objectread_partition(2)",part);
+-    fscanf(filename,"%ld",&kind);
++    fscanf(filename,"%d",&kind);
+     erg += b_ks_pa((OBJECTKIND)kind, callocobject(),part);
+     erg += objectread(filename,S_PA_S(part));
+     if (S_PA_K(part) == VECTOR) 
+@@ -3132,8 +3132,8 @@ INT objectwrite_partition(filename,part)
+     INT erg = OK;
+     COP("objectwrite_partition(1)",filename);
+     COP("objectwrite_partition(2)",part);
+-    fprintf(filename,"%ld\n",(INT)PARTITION);
+-    fprintf(filename,"%ld\n",(INT)S_PA_K(part));
++    fprintf(filename,"%d\n",(INT)PARTITION);
++    fprintf(filename,"%d\n",(INT)S_PA_K(part));
+     erg += objectwrite(filename,S_PA_S(part));
+     ENDR("objectwrite_partition");
+ }
+--- ./def.h.orig	2012-05-08 10:25:45.985370512 -0600
++++ ./def.h	2012-05-08 10:26:02.612349880 -0600
+@@ -2,14 +2,9 @@
+ /* INT should always be 4 byte */
+ #ifndef DEF_H
+ 
+-
+-#ifdef __alpha
+-typedef  int INT;
+-typedef unsigned  int  UINT;
+-#else /* __alpha */
+-typedef long INT;
+-typedef unsigned long UINT;
+-#endif /* __alpha */
++#include <stdint.h>
++typedef int32_t INT;
++typedef uint32_t UINT;
+ 
+ #include <stdio.h>
+ #include <memory.h>
+--- ./macro.h.orig	2007-12-06 09:30:56.000000000 -0700
++++ ./macro.h	2012-05-08 10:26:02.613349879 -0600
+@@ -1,6 +1,10 @@
+ /* file: macro.h symmetrica source code */
+ #ifndef MACRO_H
+ 
++#include <stdint.h>
++typedef int32_t INT;
++typedef uint32_t UINT;
++
+ #ifdef SYMMAGMA
+ #define SYM_MALLOC(a) mem_malloc(a)
+ #else
+--- ./de.c.orig	2007-12-06 09:30:00.000000000 -0700
++++ ./de.c	2012-05-08 10:28:13.825298071 -0600
+@@ -506,11 +506,11 @@ INT debugprint(a) OP a;
+     /* abschluss immer mit newline */
+     {
+     case 0: 
+-        fprintf(stderr,"kind:0=empty self=%ld\n",s_o_s(a).ob_INT);
++        fprintf(stderr,"kind:0=empty self=%d\n",s_o_s(a).ob_INT);
+         break;
+     case 1: 
+         fprintf(stderr,"kind:1=integer value:");
+-        fprintf(stderr,"%ld\n",s_i_i(a));
++        fprintf(stderr,"%d\n",s_i_i(a));
+         return(OK);
+ #ifdef VECTORTRUE
+         case 120199: case 31:
+@@ -532,7 +532,7 @@ INT debugprint(a) OP a;
+         for (i=0L;i<s_v_li(a);i++)
+         {
+         for (k=0L;k<doffset;k++) fprintf(stderr," ");
+-        fprintf(stderr,"%s %ld-komponente:\n",text,i);
++        fprintf(stderr,"%s %d-komponente:\n",text,i);
+         doffset += 2L;
+         debugprint(s_v_i(a,i));
+         doffset -= 2L;
+@@ -559,7 +559,7 @@ INT debugprint(a) OP a;
+ #ifdef BRUCHTRUE
+     case 4: 
+         {
+-        fprintf(stderr,"kind:4=bruch gekuerzt=%ld oben:\n", s_b_i(a));
++        fprintf(stderr,"kind:4=bruch gekuerzt=%d oben:\n", s_b_i(a));
+         doffset += 2L;
+         debugprint(s_b_o(a));
+         doffset -= 2L;
+@@ -661,7 +661,7 @@ INT debugprint(a) OP a;
+         for (j=0L;j<s_m_li(a);j++)
+         {
+         for (k=0L;k<doffset;k++) fprintf(stderr," ");
+-        fprintf(stderr,"%s %ld %ld-komponente:\n",text,i,j);
++        fprintf(stderr,"%s %d %d-komponente:\n",text,i,j);
+         doffset += 2L;
+         debugprint(s_m_ij(a,i,j));
+         doffset -= 2L;
+@@ -726,7 +726,7 @@ INT debugprint(a) OP a;
+         doffset += 2L;
+         C_O_K(a,VECTOR);
+         for (k=0L;k<doffset;k++) fprintf(stderr," ");
+-        fprintf(stderr,"length = number of bits = %ld\n",s_v_li(a));
++        fprintf(stderr,"length = number of bits = %d\n",s_v_li(a));
+         C_O_K(a,BITVECTOR);
+         doffset -= 2L;
+                 return(OK);
+@@ -739,7 +739,7 @@ INT debugprint(a) OP a;
+     case 36: return debugprint_reihe(a);
+ #endif /* REIHETRUE */
+     default: 
+-        fprintf(stderr,"kind:%ld unknown\n",s_o_k(a));
++        fprintf(stderr,"kind:%d unknown\n",s_o_k(a));
+         break;
+     }
+     return OK;
diff --git a/symmetrica-sort_sum_rename.patch b/symmetrica-sort_sum_rename.patch
new file mode 100644
index 0000000..e5518e5
--- /dev/null
+++ b/symmetrica-sort_sum_rename.patch
@@ -0,0 +1,313 @@
+--- ./nu.c.orig	2007-12-06 09:30:16.000000000 -0700
++++ ./nu.c	2012-05-08 08:29:01.778059252 -0600
+@@ -531,13 +531,13 @@ add_ende:
+     ENDR("add");
+ }
+ 
+-INT sort(a) OP a;
++INT sym_sort(a) OP a;
+ /* sortiert das object in aufsteigender reihenfolge AK 270787 */
+ /* AK 160986 */ /* AK 280689 V1.0 */ /* AK 050390 V1.1 */
+ /* AK 070891 V1.3 */
+ {
+     INT erg = OK;
+-    EOP("sort(1)",a);
++    EOP("sym_sort(1)",a);
+ 
+     switch(S_O_K(a))
+     {
+@@ -547,9 +547,9 @@ INT sort(a) OP a;
+         erg += sort_vector(a);break;
+ #endif /* VECTORTRUE */
+     default:
+-        erg += WTO("sort",a); break;
++        erg += WTO("sym_sort",a); break;
+     };
+-    ENDR("sort");
++    ENDR("sym_sort");
+ }
+ 
+ INT length(a,d) OP a,d;
+@@ -641,7 +641,7 @@ INT content(a,b) OP a,b;
+     ENDR("content");
+ }
+ 
+-INT sum(a,res) OP a,res;
++INT sym_sum(a,res) OP a,res;
+ /* AK 280689 V1.0 */ /* AK 050390 V1.1 */ /* AK 120391 V1.2 */
+ /* AK 140891 V1.3 */
+ /* AK 170298 V2.0 */
+@@ -649,7 +649,7 @@ INT sum(a,res) OP a,res;
+     INT erg = OK;
+     COP("sum(1)",a);
+     COP("sum(2)",res);
+-    CE2(a,res,sum);
++    CE2(a,res,sym_sum);
+ 
+     switch(S_O_K(a))
+     {
+@@ -680,7 +680,7 @@ INT sum(a,res) OP a,res;
+         erg += WTO("sum",a); break;
+     };
+ 
+-    ENDR("sum");
++    ENDR("sym_sum");
+ }
+ 
+ 
+--- ./zyk.c.orig	2007-12-06 09:30:50.000000000 -0700
++++ ./zyk.c	2012-05-08 08:29:01.785059244 -0600
+@@ -804,7 +804,7 @@ static INT zykelind_arb_co(expztvec,numz
+     zykeltypvec = CALLOCOBJECT();
+     ak_order = CALLOCOBJECT();
+ 
+-    sum(numztvec,ak_order); /* AK 060295 */
++    sym_sum(numztvec,ak_order); /* AK 060295 */
+ 
+ 
+ 
+@@ -1176,7 +1176,7 @@ INT no_orbits_arb(a,b,c) OP a,b,c;
+     erg += m_i_i(0,c);
+     while (z!=NULL)
+         {
+-        erg += sum(S_PO_S(z),e);
++        erg += sym_sum(S_PO_S(z),e);
+         erg += hoch(b,e,e);
+         erg += mult_apply(S_PO_K(z),e);
+         erg += add_apply(e,c);
+--- ./ta.c.orig	2007-12-06 09:30:36.000000000 -0700
++++ ./ta.c	2012-05-08 08:29:01.784059245 -0600
+@@ -1596,7 +1596,7 @@ aaa:
+     {
+     OP d,e;
+     e = CALLOCOBJECT();
+-    erg += sum(content,e); /* AK 271098 */
++    erg += sym_sum(content,e); /* AK 271098 */
+     d = CALLOCOBJECT();
+     erg += weight(shape,d);
+     if (NEQ(d,e))
+@@ -1821,7 +1821,7 @@ INT matrix_twoword(matrix, column_index,
+     CE3(matrix, column_index, row_index,matrix_twoword);
+     c = callocobject();
+     erg += zeilen_summe(matrix,c);
+-    erg += sum(c,c);
++    erg += sym_sum(c,c);
+     erg += m_l_v(c,column_index);
+     erg += m_l_v(c,row_index);
+     for(i=0,l=0;i<S_M_HI(matrix);i++)
+--- ./nc.c.orig	2007-12-06 09:30:15.000000000 -0700
++++ ./nc.c	2012-05-08 08:29:01.776059254 -0600
+@@ -204,7 +204,7 @@ INT scalarproduct_nc(a,b,c) OP a,b,c;
+     erg += mult(S_NC_C(a),S_NC_C(b),d);
+     erg += m_gl_co(S_NC_GL(a),e);
+     erg += mult_apply(e,d);
+-    erg += sum(d,e);
++    erg += sym_sum(d,e);
+     erg += m_gl_go(S_NC_GL(a),d);
+     erg += div(e,d,c);
+     erg += freeall(e);
+@@ -617,7 +617,7 @@ INT reduce_nc_kranz(a,b) OP a,b;
+         erg += mult_nc_kranz(c,a,e);
+         erg += mult(S_V_I(e,1L),f,c);
+         erg += div(c,g,c);
+-        erg += sum(c,S_V_I(S_NC_C(b),S_I_I(d)));
++        erg += sym_sum(c,S_V_I(S_NC_C(b),S_I_I(d)));
+     }
+     erg += freeall(c); 
+     erg += freeall(d); 
+@@ -712,7 +712,7 @@ INT m_vcl_kranz(l,a) OP l,a;
+     for(j = 0L; j<S_V_LI(c);j++) {
+         kranztypus_to_matrix(S_V_I(c,j),S_V_I(a,j)); 
+     }
+-    sort(a);
++    sym_sort(a);
+     freeall(f); freeall(h); freeall(c);
+     return OK;
+ }
+@@ -739,7 +739,7 @@ INT m_vco_kranz(l,a) OP l,a;
+         kranztypus_to_matrix(S_V_I(c,j),S_V_I(h,j)); 
+         }
+     
+-    sort(h); 
++    sym_sort(h); 
+     m_l_v(S_V_L(h),a);
+     for(j = 0L; j<S_V_LI(c);j++) {
+         typusorder(S_V_I(h,j), zb, za, S_V_I(a,j), f);
+@@ -789,7 +789,7 @@ INT order_class_kranz(l,i,a) OP l,i,a;
+         erg += kranztypus_to_matrix(S_V_I(c,j),S_V_I(h,j)); 
+     }
+     
+-    erg += sort(h);
++    erg += sym_sort(h);
+     erg += typusorder(S_V_I(h,S_I_I(i)), zb, za, a, f);
+     erg += freeall(f); 
+     erg += freeall(c); 
+--- ./rest.c.orig	2007-12-06 09:30:31.000000000 -0700
++++ ./rest.c	2012-05-08 08:29:01.783059247 -0600
+@@ -3998,7 +3998,7 @@ aaa:
+                 oj = j;
+                 }
+         }
+-    erg += sum(c,b);
++    erg += sym_sum(c,b);
+ eee:
+     erg += freeall(c);
+     ENDR("charge_word");
+--- ./bar.c.orig	2007-12-06 09:29:59.000000000 -0700
++++ ./bar.c	2012-05-08 08:29:01.770059262 -0600
+@@ -237,7 +237,7 @@ INT rz_lehmercode_bar(a,b) OP a,b;
+     g = callocobject();
+     e = S_V_I(a,0L);
+     f = S_V_I(a,1L);
+-    erg += sum(f,g);
++    erg += sym_sum(f,g);
+     j=0L;
+     for (i=0L;i<S_V_LI(e);i++)
+         j += S_V_II(e,i)*(i+1L);
+@@ -427,7 +427,7 @@ INT makevectorof_class_bar(a,b) OP a,b;
+     for (i=0L;i<S_V_LI(b);i++)
+         erg += kranztypus_to_matrix(S_V_I(c,i),S_V_I(b,i));
+     erg += freeall(c);
+-    erg += sort(b); /* AK 130592 */
++    erg += sym_sort(b); /* AK 130592 */
+     ENDR("makevectorof_class_bar");
+ }
+ 
+@@ -615,7 +615,7 @@ INT length_bar(a,b) OP a,b;
+     c = callocobject();
+     d = callocobject();
+     erg += lehmercode_bar(a,c);
+-    erg += sum(S_V_I(c,1L),b);
++    erg += sym_sum(S_V_I(c,1L),b);
+     for(i=0L;i<S_P_LI(a);i++)
+         {
+         if (S_V_II(S_V_I(c,0L),i) == 1L)
+--- ./di.c.orig	2007-12-06 09:30:00.000000000 -0700
++++ ./di.c	2012-05-08 08:29:01.773059259 -0600
+@@ -1355,7 +1355,7 @@ INT get_orb_rep(G,m,n,L,len,konstr)
+ 				m_il_nv(0L,weight_watcher);
+ 				m_il_nv(0L,perm_vec);
+ 				copy(S_V_I(FP,0L),fix);
+-				sort(fix);
++				sym_sort(fix);
+ 
+ 				get_perm(hweight,p,b,S_I_I(n),S_I_I(m),0L,
+ 						 perm_vec,weight_watcher,fix);
+@@ -1502,7 +1502,7 @@ INT get_perm(w,p,b,n,m,ind,perm_vec,ww,f
+ 	if(ind == m)
+ 	{
+ 		mult_perm_fix(p,fix,hfix);
+-		sort(hfix);
++		sym_sort(hfix);
+ 		if(!hfix_in_ww(hfix,ww))
+ 		{
+ 			inc(ww);
+--- ./galois.c.orig	2007-12-06 09:30:01.000000000 -0700
++++ ./galois.c	2012-05-08 08:29:01.774059258 -0600
+@@ -758,7 +758,7 @@ nn:
+ 		}
+         }
+     FREEALL2(v,nv);
+-    sort(res);
++    sym_sort(res);
+     }
+     S3R(k,phg_c,phg_d,"all_points_phg_store",res);
+     ENDR("all_points");
+--- ./perm.c.orig	2007-12-06 09:30:19.000000000 -0700
++++ ./perm.c	2012-05-08 08:31:55.863843141 -0600
+@@ -833,7 +833,7 @@ komponeten. */
+     /* s = Anzahl der spalten */
+         
+     s = S_V_LI(S_V_I(a,0L));
+-    sum(S_V_I(a,0L),summe);/* composition ist vector */
++    sym_sum(S_V_I(a,0L),summe);/* composition ist vector */
+     z = S_I_I(summe);
+     FREEALL(summe); 
+     m_ilih_nm(s,z,b); 
+@@ -1114,7 +1114,7 @@ h wird der vektor der label der konjugie
+         erg += kranztypus_to_matrix(S_V_I(c,i),S_V_I(h,i)); 
+     }
+     
+-    erg += sort(h);
++    erg += sym_sort(h);
+ 
+     erg += chartafel(b,ct);
+ 
+@@ -1926,7 +1926,7 @@ INT numberof_inversionen(a,b) OP a,b;
+     OP c;
+     c = CALLOCOBJECT();
+     erg += lehmercode_permutation(a,c); /*result is a vector */
+-    erg += sum(c,b); 
++    erg += sym_sum(c,b); 
+     FREEALL(c);
+     }
+     ENDR("numberof_inversionen");
+@@ -2364,7 +2364,7 @@ vgl verfahren 1 in diplomarbeit */
+     COP("rz_lehmercode(2)",b);
+ 
+     zw = callocobject();
+-    erg += sum(lc,zw); 
++    erg += sym_sum(lc,zw); 
+     if (NULLP(zw)) 
+         {
+         erg += m_il_integervector((INT)0,b);
+--- ./part.c.orig	2007-12-06 09:30:17.000000000 -0700
++++ ./part.c	2012-05-08 08:29:01.779059251 -0600
+@@ -347,7 +347,7 @@ INT append_apply_part(a,b) OP a,b;
+     if (a == b) { /* a := a+a */
+         if (S_PA_K(a) == VECTOR) {
+             erg += append_apply_vector(S_PA_S(a),S_PA_S(b));
+-            erg += sort(S_PA_S(a));
++            erg += sym_sort(S_PA_S(a));
+             goto endr_ende;
+         }
+         else if (S_PA_K(a) == EXPONENT) {
+@@ -406,7 +406,7 @@ INT append_apply_part(a,b) OP a,b;
+             k=S_PA_LI(b)-1;
+ /*
+             erg += append_apply_vector(S_PA_S(a),S_PA_S(b));
+-            erg += sort(S_PA_S(a));
++            erg += sym_sort(S_PA_S(a));
+ */
+             inc_vector_co(S_PA_S(a),S_PA_LI(b));
+             for (j=S_PA_LI(a)-1;j>=0;j--)
+--- ./ga.c.orig	2007-12-06 09:30:01.000000000 -0700
++++ ./ga.c	2012-05-08 08:29:01.773059259 -0600
+@@ -632,7 +632,7 @@ static INT co_posorneg_sum(a,b,what) OP
+     else if (what == 0L)
+         erg += vertikal_sum(S_V_L(a),c);
+     erg += copy(a,d);
+-    erg += sort(d);
++    erg += sym_sort(d);
+     erg += m_il_p(S_V_II(d,S_V_LI(d)-1L),e); /* identitaet */
+     for (i=0L,k=0L,j=S_V_LI(d);i<S_P_LI(e);i++)
+         if (i+1L == S_V_II(d,k) )
+@@ -722,7 +722,7 @@ INT garnir(f,g,h,c) OP f,g,h,c;
+ 
+     j=0L;
+     erg += append(h,g,h2); 
+-    erg += sort(h2);
++    erg += sym_sort(h2);
+     for (i=0L;i<S_V_LI(g);i++)
+         {
+         erg += m_i_i(S_V_II(g,i),S_P_I(a,j));
+--- ./def.h.orig	2007-12-06 09:30:56.000000000 -0700
++++ ./def.h	2012-05-08 08:29:01.772059260 -0600
+@@ -3105,7 +3105,7 @@ extern INT Sn_wt();
+ extern INT so_character ();
+ extern INT so_dimension ();
+ extern OBJECTKIND s_o_k();
+-extern INT sort();
++extern INT sym_sort();
+ extern INT sort_rows_tableaux_apply();
+ extern INT sort_vector();
+ extern OBJECTSELF s_o_s();
+@@ -3271,7 +3271,7 @@ extern INT sub_default();
+ extern INT sub_part_part();
+ extern INT substitute_one_matrix ();
+ extern INT substitute_one_monopoly ();
+-extern INT sum();
++extern INT sym_sum();
+ extern INT sum_integervector();
+ extern INT sum_matrix();
+ extern INT sum_vector();
diff --git a/symmetrica.spec b/symmetrica.spec
index 3fc0f37..c5dedd6 100644
--- a/symmetrica.spec
+++ b/symmetrica.spec
@@ -1,6 +1,6 @@
 Name:           symmetrica
 Version:        2.0
-Release:        6%{?dist}
+Release:        7%{?dist}
 Summary:        A Collection of Routines for Solving Symmetric Groups
 Group:          Applications/Engineering
 # Note: they claim it's 'public domain' but then provide this:
@@ -8,7 +8,15 @@ Group:          Applications/Engineering
 License:        MIT
 URL:            http://www.algorithm.uni-bayreuth.de/en/research/SYMMETRICA/
 Source0:        http://www.algorithm.uni-bayreuth.de/en/research/SYMMETRICA/SYM2_0_tar.gz
-BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+# Sent upstream 8 May 2012.  Sagemath patch to fix namespace collisions on the
+# names "sort" and "sum".
+Patch0:		symmetrica-sort_sum_rename.patch
+# Sent upstream 8 May 2012.  The INT type should always be a 4-byte type, but
+# the sources use an incorrect and outdated method of ensuring this.
+Patch1:         symmetrica-int.patch
+# Will not be sent upstream, as it is GCC-specific.  Add function attributes
+# to quiet GCC warnings and improve opportunities for optimization.
+Patch2:         symmetrica-attribute.patch
 
 
 %description
@@ -42,7 +50,12 @@ developing applications that use %{name}.
 
 %prep
 %setup -q -c
+%patch0
+%patch1
+%patch2
 
+# Don't print the banner on every library load and API function call
+sed -i "s/^\(INT no_banner = \)FALSE/\1TRUE/" de.c
 
 %build
 # All the silly *TRUE defines:
@@ -68,11 +81,11 @@ for file in *.c; do
     gcc %{optflags} -fPIC -c ${file} -I. -DFAST ${DFLAGS}
   fi
 done
-gcc %{optflags} -shared -Xlinker -hlib%{name}.so.0 -o lib%{name}.so.0.0.0 *.o
+gcc %{optflags} $RPM_LD_FLAGS -shared -Xlinker -hlib%{name}.so.0 \
+    -o lib%{name}.so.0.0.0 *.o
 
 
 %install
-rm -rf $RPM_BUILD_ROOT
 mkdir -p $RPM_BUILD_ROOT%{_libdir}
 install -m 644 lib%{name}.a $RPM_BUILD_ROOT%{_libdir}/
 install -m 755 lib%{name}.so.0.0.0 $RPM_BUILD_ROOT%{_libdir}/
@@ -88,30 +101,28 @@ install -m 644 *.h $RPM_BUILD_ROOT%{_includedir}/%{name}/
 %postun -p /sbin/ldconfig
 
 
-%clean
-rm -rf $RPM_BUILD_ROOT
-
-
 %files
-%defattr(-,root,root,-)
 %doc *.doc
 %{_libdir}/lib%{name}.so.0.0.0
 %{_libdir}/lib%{name}.so.0
 
 
 %files devel
-%defattr(-,root,root,-)
 %doc test.c
 %{_includedir}/%{name}
 %{_libdir}/lib%{name}.so
 
 
 %files static
-%defattr(-,root,root,-)
 %{_libdir}/lib%{name}.a
 
 
 %changelog
+* Tue May 8 2012 Jerry James <loganjerry at gmail.com> - 2.0-7
+- Add patches to fix sagemath build problems, forwarded by pcpa
+  <paulo.cesar.pereira.de.andrade at gmail.com>
+- Drop unnecessary spec file elements (BuildRoot, clean script, etc.)
+
 * Sat Jan 14 2012 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 2.0-6
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
 


More information about the scm-commits mailing list