Bug #9954 mysql-4.1.11/cmd-line-utils/libedit/makelist.sh is not portable
Submitted: 16 Apr 2005 17:43 Modified: 28 Apr 2005 2:03
Reporter: STyx Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Compiling Severity:S3 (Non-critical)
Version:mysql-4.1.11 OS:cygwin
Assigned to: Magnus Blåudd CPU Architecture:Any

[16 Apr 2005 17:43] STyx
Description:
BUG in mysql-4.1.11/cmd-line-utils/libedit

file 'makelist.sh' is not portable (dos platform)

this command generate

>protected el_action_t	ed_end_of_file( (EditLine *, int);

instead of

>protected el_action_t	ed_end_of_file (EditLine *, int);

this is due to extra ^M char in dos files:

>/* ed_end_of_file():

How to repeat:
make

Suggested fix:
CORRECTION: use command:

>sed -e 's/length($2) - 3/index($2,"(") - 1/g' makelist >makelist.new && mv makelist.new makelist
[22 Apr 2005 13:08] Magnus Blåudd
This is as far I've got.
Downloaded the source for 4.1.11.

Apply the following patch for mysys/my_trh_init.c
===== my_thr_init.c 1.28 vs edited =====
*** C:/cygwin/home/Magnus/mysql/mysql-4.1/BitKeeper/tmp/bk_my_thr_init.c-1.28_a01332	2004-10-22 17:44:48 +02:00
--- edited/my_thr_init.c	2005-04-22 10:31:03 +02:00
***************
*** 72,80 ****
--- 72,82 ----
    pthread_mutexattr_setkind_np(&my_fast_mutexattr,PTHREAD_MUTEX_ADAPTIVE_NP);
  #endif
  #ifdef PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP
+ #ifdef PTHREAD_MUTEX_ERRORCHECK_NP
    pthread_mutexattr_init(&my_errchk_mutexattr);
    pthread_mutexattr_setkind_np(&my_errchk_mutexattr,
  			       PTHREAD_MUTEX_ERRORCHECK_NP);
+ #endif
  #endif
  
    pthread_mutex_init(&THR_LOCK_malloc,MY_MUTEX_INIT_FAST);

Run configure using the switch --with-readline to avoid the problems in libedit
$ ./configure --with-readline --without-innodb [--with-debug]

$ make

It will make all files, but a link problem occurs when linking mysqld. 
.a ../strings/libmystrings.a -lz       -lcrypt -lm
g++ -O3 -DDBUG_OFF -fno-implicit-templates -fno-exceptions -fno-rtti -o mysqld.e
xe sql_lex.o sql_handler.o item.o item_sum.o item_buff.o item_func.o item_cmpfun
c.o item_strfunc.o item_timefunc.o thr_malloc.o item_create.o item_subselect.o i
tem_row.o item_geofunc.o field.o strfunc.o key.o sql_class.o sql_list.o net_serv
.o protocol.o sql_state.o lock.o my_lock.o sql_string.o sql_manager.o sql_map.o
mysqld.o password.o hash_filo.o hostname.o set_var.o sql_parse.o sql_yacc.o sql_
base.o table.o sql_select.o sql_insert.o sql_prepare.o sql_error.o sql_update.o
sql_delete.o uniques.o sql_do.o procedure.o item_uniq.o sql_test.o log.o log_eve
nt.o init.o derror.o sql_acl.o unireg.o des_key_file.o discover.o time.o opt_ran
ge.o opt_sum.o records.o filesort.o handler.o ha_heap.o ha_myisam.o ha_myisammrg
.o ha_berkeley.o ha_innodb.o ha_isam.o ha_isammrg.o ha_ndbcluster.o sql_db.o sql
_table.o sql_rename.o sql_crypt.o sql_load.o mf_iocache.o field_conv.o sql_show.
o sql_udf.o sql_analyse.o sql_cache.o slave.o sql_repl.o sql_union.o sql_derived
.o client.o sql_client.o mini_client_errors.o pack.o stacktrace.o repl_failsafe.
o gstream.o spatial.o sql_help.o protocol_cursor.o tztime.o my_time.o ha_example
.o ha_archive.o ha_tina.o ha_blackhole.o  ../myisam/libmyisam.a ../myisammrg/lib
myisammrg.a ../heap/libheap.a ../vio/libvio.a ../mysys/libmysys.a ../dbug/libdbu
g.a ../regex/libregex.a ../strings/libmystrings.a -lz -lcrypt
item_strfunc.o(.text+0x68b7):item_strfunc.cc: undefined reference to `__static_i
nitialization_and_destruction_0(int, int)'
item_strfunc.o(.text+0x68d7):item_strfunc.cc: undefined reference to `__static_i
nitialization_and_destruction_0(int, int)'
log.o(.text+0x4467):log.cc: undefined reference to `__static_initialization_and_
destruction_0(int, int)'
log.o(.text+0x4487):log.cc: undefined reference to `__static_initialization_and_
destruction_0(int, int)'
spatial.o(.text+0x2e47):spatial.cc: undefined reference to `__static_initializat
ion_and_destruction_0(int, int)'
tztime.o(.text+0x22a7):tztime.cc: more undefined references to `__static_initial
ization_and_destruction_0(int, int)' follow
collect2: ld returned 1 exit status
make[4]: *** [mysqld.exe] Error 1
make[4]: Leaving directory `/home/Magnus/mysql/mysql-4.1.11/sql'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/home/Magnus/mysql/mysql-4.1.11/sql'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/Magnus/mysql/mysql-4.1.11/sql'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/Magnus/mysql/mysql-4.1.11'
make: *** [all] Error 2

Will continue with this problem later. Looks like it thinks this is pure windows, since it's trying to make mysqld.exe
[26 Apr 2005 10:35] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/internals/24306
[26 Apr 2005 11:44] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/internals/24312
[26 Apr 2005 19:17] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/internals/24338
[27 Apr 2005 7:59] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/internals/24349
[27 Apr 2005 11:27] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/internals/24366
[27 Apr 2005 11:28] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/internals/24367
[27 Apr 2005 11:30] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/internals/24368
[27 Apr 2005 20:13] Magnus Blåudd
Changed implementation of the awk scripts in makelist.sh
Pushed to 4.1.12 and 5.0.6
[28 Apr 2005 2:03] Paul DuBois
Noted in 4.1.12, 5.0.6 changelogs.
[3 May 2005 10:37] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/internals/24532